...
type
pNodo = ^TNodo;
TNodo = record
dato: Integer;
ant,
sig : pNodo;
end;
procedure CrearLista(var lst: pNodo; valor: Integer);
begin
New(lst);
lst^.dato := valor;
lst^.ant := nil;
lst^.sig := nil
end;
procedure AgregarNodo(var lst: pNodo; valor: Integer);
var
ndo: pNodo;
begin
New(ndo);
ndo.dato := valor;
lst.sig := ndo;
ndo.ant := lst;
ndo.sig := nil;
lst := ndo
end;
procedure MostrarInvertida(var lst: pNodo);
var
aux : pNodo;
begin
aux := lst;
while lst.sig <> nil do lst := lst.sig;
while lst <> nil do
begin
write(lst.dato:3);
lst := lst.ant
end;
lst := aux
end;
procedure LiberarLista(var lst: pNodo);
begin
Dispose(lst)
end;
var
i: Integer;
Lista: pNodo;
begin
CrearLista(Lista, 1);
for i:= 2 to 20 do
AgregarNodo(Lista, i);
MostrarInvertida(Lista);
LiberarLista(Lista);
readln
end.