Listas
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;
Regístrate para leer el documento completo.