invierte.pas
{ ppc386 -va -vh *.pas }
{ COMIENZO DE DESCRIPCION
Dada una lista L1, escribir un procedimiento INVIERTE que
retorna la lista con sus elementos en orden invertido.
keywords: lista
FIN DE DESCRIPCION }
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
{ $ Id: invierte.pas 2002/04/05 13:50 mstorti Exp jdelia $}
program pruinver;
uses u_listpi;
type
lista = listpi ;
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
procedure INVIERTE (L1: lista; var L2: lista);
var
p, q : posicion;
x : tipo_elemento;
begin
L2.ANULA;
p := L1.PRIMERO;
q := L1.FIN;
while (p <> q) do begin
x := L1.RECUPERA (p);
L2.INSERTA (x, L2.PRIMERO);
p := L1.SIGUIENTE (p);
end ; {while}
end;
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
var
L, I: lista ;
p : posicion;
begin
L.ANULA;
L.IMPRIME ('lista inicial L');
p := L.PRIMERO;
L.INSERTA (1,p);
L.INSERTA (4,p);
L.INSERTA (3,p);
L.INSERTA (8,p);
L.INSERTA (2,p);
L.IMPRIME ('lista inicial L');
INVIERTE (L, I);
I.IMPRIME ('lista invertida I');
end.
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
Generated by GNU enscript 1.6.1.