Obs. Supõe um elemento 'vazio' no início da fila
Type tpont = ^reg_fila; fila = tpont; reg_fila = record info: T; lig: tpont; End; Var Começo, Fim: fila;
-> Faça as alterações necessárias na definição da pilha para que os procedimentos não necessitem passar dois ponteiros como parâmetros.
-> Refaça as rotinas abaixo utilizando as alaterações feitas no exercício acima
-> Em seguida, faça as rotinas de novo, supondo que NÃO existe um nó vazio no início da lista.
Procedure CriaFila (Var Começo, Fim: fila); Begin Começo := nil; Fim := nil; End;2. Inserir (x, F) - insere x no fim de F
{só se lista não vazia} Procedure Inserir (x: T; Var Fim: fila); Begin new(Fim^.lig); Fim := Fim^.lig; Fim^.info := x; Fim^.lig := nil; End;
-> Fazer o Inserir considerando condições de exceção.3. Vazia (F) - testa se F está vazia
Function Vazia (Começo, Fim: fila): boolean; Begin Vazia := ( Começo = nil) and (Fim = nil); End;4. Primeiro (F) - acessa o elemento do início da fila
Function Primeiro (Var Começo: fila): T; Begin Primeiro := Começo^.info; End;5. Elimina (F) - elimina o elemento do início da fila
Procedure Elimina (Var Começo, Fim: fila;); Var p: fila; Begin p := Começo; Começo := Começo^.lig; {válido se lista não vazia} If ( Começo = Fim) Then Begin Dispose (Começo);
Começo = nil; Fim = nil; End; dispose(p); End;