Você está na página 1de 2

Implementacao Dinmica

http://www.icmc.usp.br/~sce182/fimpld.html

ndice > Fila > Implementao Dinmica

Instituto de Cincias Matemticas de So Carlos Departamento de Computao e Estatstica SCE182 - Algoritmos e Estruturas de Dados 1 Profs. Resp.: Graa Pimentel, Maria Cristina e Rosane

Implementao Dinmica
Definio da Estrutura de Dados
Obs. Supe um elemento 'vazio' no incio da fila Type tpont = ^reg_fila; fila = tpont; reg_fila = record info: T; lig: tpont; End; Var Comeo, Fim: fila;

-> Faa as alteraes necessrias na definio da pilha para que os procedimentos no necessitem passar dois ponteiros como parmetros. -> Refaa as rotinas abaixo utilizando as alateraes feitas no exerccio acima -> Em seguida, faa as rotinas de novo, supondo que NO existe um n vazio no incio da lista.

Operaes com Filas


1. Criar (F) - criar uma fila F vazia
Procedure CriaFila (Var Comeo, Fim: fila); Begin Comeo := nil; Fim := nil; End;

2. Inserir (x, F) - insere x no fim de F


{s se lista no vazia} Procedure Inserir (x: T; Begin new(Fim^.lig); Fim := Fim^.lig; Fim^.info := x; Fim^.lig := nil; End; Var Fim: fila);

-> Fazer o Inserir considerando condies de exceo.

3. Vazia (F) - testa se F est vazia


Function Vazia (Comeo, Fim: fila): boolean;

1 de 2

25/2/2008 20:27

Implementacao Dinmica

http://www.icmc.usp.br/~sce182/fimpld.html

Begin Vazia := ( Comeo = nil) and (Fim = nil); End;

4. Primeiro (F) - acessa o elemento do incio da fila


Function Primeiro (Var Comeo: fila): T; Begin Primeiro := Comeo^.info; End;

5. Elimina (F) - elimina o elemento do incio da fila


Procedure Elimina (Var Comeo, Fim: fila;); Var p: fila; Begin p := Comeo; Comeo := Comeo^.lig; {vlido se lista no vazia} If ( Comeo = Fim) Then Begin Dispose (Comeo); Comeo = nil; Fim = nil; End; dispose(p); End;

Exemplo de Programa Fila

2 de 2

25/2/2008 20:27