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.