Pagina anteriorIndiceProxima pagina

Algoritmos Computacionais

 11.2 Listas

Uma lista é uma coleção de elementos de mesmo tipo arrumados de forma arbitrária.
- cada elemento da lista tem um sucessor e um predecessor.
- o predecessor do 1º e o sucessor do último são vazios.

Ex.: 

 
 
Program  construindo_lista;
Type
    info =
    pont =elemento;
    elemento = Record
                       chave: info;
                       prox: pont
                 End;
Var
     p, prim: pont; 
Begin
     new(prim);
     prim.chave:= 3;
     prim.prox:= nil;
     new(p);
     prim.chave:= 6;
     prim.prox:= prim;
     prim:= p;
     new(p);
     prim.chave:= 9;
     prim:= p;
End.

Usando um arquivo para criar_lista temos:
 
Type
 Ponteiro: Elemento;
 Elemento: record
                    INFO: integer;
                    PROX: ponteiro;
               end;
Var
 P, PRIM: Ponteiro;
 ARQ: file of integer;

Procedure cria_lista

Begin
 prim:= nil;
 reset (arq);
 While not eof(arq) do
  Begin
   new(p);
   p.chave:= arq;
   p.prox:= prim;
   prim:= p;
   get(arq);
  End;
End; {de cria_lista} 

Uma função para procurar um elemento numa lista é dada por:
Function Procura_lista (primeiro: pont; dado: integer): boolean;
Var
 p: pont;
 nao_achou: boolean;
Begin
 p:= primeiro;
 nao_achou:= true
 While (p <> nil) and nao_achou do
  Begin
   If p.chave = dado
   Then nao_achou:= false
   Else p:= p.prox;
  End;
 procura_lista:= not(nao_achou);
End;


Pagina anteriorIndiceProxima pagina

araujo@eng.uerj.br