prueba_pif.pas

{ ppc386 -va -vh *.pas }
{ COMIENZO DE DESCRIPCION

  Prueba implementaci\'on de listas de enteros por punteros,
  para la versi\'on ``u_listpif'', es decir, con un puntero
  a la celda final y mejor manejo de memoria, esto es, hace
  los `dispose' correspondiente en ANULA y en SUPRIME.
  keywords: lista, punteros

FIN DE DESCRIPCION }
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
{ $Id: prueba_pif   v2 2002/04/04 17:40 mstorti Exp jdelia$  }

program prueba_pif ;

uses u_lispif ;

var
  L : lispif   ;
  p : posicion ;

{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
begin

   writeln ;
   L.ANULA;
   p := L.PRIMERO ;
   L.INSERTA (4, p);
   L.INSERTA (3, p);
   L.INSERTA (2, p);
   L.INSERTA (1, p);
   L.IMPRIME ('Debe imprimir: 1 2 3 4');

   { Verifica que encuentra el `3' en la lista}
   p := L.LOCALIZA (3);
   if ( p = L.FIN ) then
      writeln ('Error: no encontro el 3 en la lista')
   else begin
      writeln ('Correcto: encontro el 3 en la lista')
   end ; {if}
	 
   { Verifica que hay un `3' en la posicion encontrada }
   if ( L.RECUPERA (p) <> 3 ) then
      writeln ('Error: no habia un 3 en la posicion')
   else begin
      writeln ('Correcto:  habia un 3 en la posicion')
   end ; {if}
      
   { Verifica que NO encuentra el 6 en la lista }
   p := L.LOCALIZA (6);
   if ( p <> L.FIN) then
      writeln ('Error: encontro el 6 en la lista')
   else begin
      writeln ('Correcto: no encontro el 6 en la lista')
   end ; {if}

   writeln ('Suprime el 3');
   p := L.LOCALIZA (3);
   L.SUPRIME (p);
   L.IMPRIME ('Debe imprimir: 1 2 4');

   writeln ('Suprime el 4');
   p := L.LOCALIZA (4);
   L.SUPRIME (p);
   L.IMPRIME ('Debe imprimir: 1 2');
   
end.
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}

Generated by GNU enscript 1.6.1.