Listas

Solo disponible en BuenasTareas
  • Páginas : 2 (275 palabras )
  • Descarga(s) : 0
  • Publicado : 2 de junio de 2011
Leer documento completo
Vista previa del texto
La definición de la lista seria: 

TYPE 
PUNTERO:=^NODO; 
NODO:= RECORD; 
INFO:= INTEGER; 
SIG := PUNTERO; 
END; 

Crear una lista 
En toda creación de una listaexisten dos pasos: 
a)creación del primer nodo. 
b)Creación del resto de nodos. 

a)creación del primer nodo 
new(lista); 
lista^_nodo:= 1; 
lista^.siguiente=nil; . b)creación de una lista con N nodos. 

begin 
new(lista); 
lista^_info:= 1; 
aux=lista; 
for i=1 to N do 
begin 
new(aux^.sig); 
aux=aux^.sig; 
aux^.info=I; 
end; aux^.sig=nil; 
end; 

Recorrido de una lista 
Aux:= lista; 
While aux <> nil do 
Write (aux^.info); 
Aux:=(aux^.siguiente); 
end 

Modo de Inserción por el principio de lalista. 

For i=n to downto 1 do 
Begin 
New(aux); 
Aux^.info:=I; 
Aux^.siguiente:0lista; 
Lista:=aux; 
end 

Busqueda de un elemento dentro de una lista 

ProcedureBusqueda(comienzo:puntero, Elemento:integer); 
Var 
Aux:=puntero; 
Inc: 
Begin 
Aux:=comienzo; 
Inc:=false; 
While (not inc) and (aux <> nil) do 
Begin 
Ifaux^.info:=elemento then 
Inc:=true; 
Else 
Aux:=aux^.siguiente; 
End 
If inc=false then 
Write(‘ Elemento no encontrado ‘); 
Else 
Write(‘ elemento Encontrado’); 
End 
End 

Borraruna lista 

Procedure Borrar(var l:=lista, elem:=integer); 
Var 
Igual, anterior:=lista; 
Begin 
{ se debe buscar la posición del elemento a borrar } 

Actual:=l, Anterior:=l; 
While (actual <> nil) and (actual^.clave <> elem) do 
Begin 
Anterior:= actual; 
Actual:0actual^.siguiente; 
End; 
If (actual <> nil) and (actual^.Clave<> elem) then 
Begin 
If (anterior=actual) then 
L:=actual^. Sig { borrar el primero } 
Else 
Anterior^. Sig:= actual^.sig; 
Dispose(actual); 
End; 
End; 
tracking img