saca_fondo.pas
{ ppc386 -va -vh *.pas }
{ COMIENZO DE DESCRIPCION
Ejercicio tomado en el 1er parcial 16/04/02.
Escribir un procedimiento SACA_FONDO (var P: pila) que
elimina el \'ultimo elemento de una pila P, dejando
los dem\'as inalterados, usando exclusivamente una
pila auxiliar. Por ejemplo, si P = [ 8 3 9 1 6 5 ],
despu\'es de SACA_FONDO (P), debe quedar
P = [ 8 3 9 1 6 ].
keywords: pila
FIN DE DESCRIPCION }
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
{ $ Id: saca_fondo.pas 2002/04/10 7:10 jdelia Exp jdelia $}
program sacar ;
uses u_pilapi ;
type
pila = pilapi;
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
procedure SACA_FONDO (var P: pila);
var
Q : pila ;
x : tipo_elemento ;
begin
writeln;
write ('saca: ');
Q.ANULA ;
while not P.VACIA do begin
x := P.TOPE ; write (x, ' ');
Q.METE (x);
P.SACA ;
end ; {while}
writeln ;
Q.SACA ; {descarta tope en Q}
while not Q.VACIA do begin
x := Q.TOPE ;
P.METE (x);
Q.SACA ;
end ; {while}
end ;
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
var
P : pila ;
begin
P.ANULA ;
P.METE (5); {n=1}
P.METE (6); {n=2}
P.METE (1); {n=3}
P.METE (9); {n=4}
P.METE (3); {n=5}
P.METE (8); {n=6}
SACA_FONDO (P);
P.IMPRIME (' ');
end .
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
Generated by GNU enscript 1.6.1.