PILA
Publicado por Juan (83 intervenciones) el 14/08/2007 09:15:14
Que tal, hice este programa yo, el programa hace lo que quiero, pero no se si realmente esta bien aplicada la pila, es como que lo hice pero no entiendo bien su lógica todavía, medio raro no?, si hay algún error, o la pila tendría que aplicarse de otra manera diganme, aca está el código:
Program ejpila;
Type
tipoinfo=integer;
tipopila=^tiponodo;
tiponodo=record
info:tipoinfo;
sgte:tipopila;
end;
Tvec=array [1..100] of tipoinfo;
Procedure Meter(var pila:tipopila;valor:tipoinfo);
var ptrn:tipopila;
begin
new(ptrn);
ptrn^.info:=valor;
ptrn^.sgte:=pila;
pila:=ptrn
end;
Procedure Sacar(var pila:tipopila;var valor:tipoinfo);
var ptrn:tipopila;
begin
ptrn:=pila;
valor:=pila^.info;
pila:=pila^.sgte;
dispose(ptrn)
end;
var
pila:tipopila;
n,i:integer;
vec:tvec;
begin
pila:=nil;
writeln('¨Cuantos valores va a ingresar?');
readln(n);
for i:=1 to n do
begin
writeln('Ingrese un valor');
readln(vec[i]);
meter(pila,vec[i])
end;
writeln('Ahora va a ver los valores que se ingresaron de forma invertida');
while pila<>nil do
begin
sacar(pila,vec[i]);
writeln(vec[i]);
dec(i)
end;
readln
end.
Program ejpila;
Type
tipoinfo=integer;
tipopila=^tiponodo;
tiponodo=record
info:tipoinfo;
sgte:tipopila;
end;
Tvec=array [1..100] of tipoinfo;
Procedure Meter(var pila:tipopila;valor:tipoinfo);
var ptrn:tipopila;
begin
new(ptrn);
ptrn^.info:=valor;
ptrn^.sgte:=pila;
pila:=ptrn
end;
Procedure Sacar(var pila:tipopila;var valor:tipoinfo);
var ptrn:tipopila;
begin
ptrn:=pila;
valor:=pila^.info;
pila:=pila^.sgte;
dispose(ptrn)
end;
var
pila:tipopila;
n,i:integer;
vec:tvec;
begin
pila:=nil;
writeln('¨Cuantos valores va a ingresar?');
readln(n);
for i:=1 to n do
begin
writeln('Ingrese un valor');
readln(vec[i]);
meter(pila,vec[i])
end;
writeln('Ahora va a ver los valores que se ingresaron de forma invertida');
while pila<>nil do
begin
sacar(pila,vec[i]);
writeln(vec[i]);
dec(i)
end;
readln
end.
Valora esta pregunta


0