Pascal/Turbo Pascal - Ayuda para crear un programa que inserte, elimine y muestre datos en una pila

   
Vista:

Ayuda para crear un programa que inserte, elimine y muestre datos en una pila

Publicado por Junior (1 intervención) el 30/11/2014 20:16:39
Quien me puede hacer el favor en ayurme a crear un programa que inserte, elimine y muestre datos en una pila, porfavorr es urgente, GRACIAS!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda para crear un programa que inserte, elimine y muestre datos en una pila

Publicado por ramon (2072 intervenciones) el 21/12/2014 23:24:10
{Mira esto }

program manejopilas;
uses
crt;
type
punteropila = ^pilas;
pilas = record
nombre : string;
sig : punteropila;
end;
var
datopila : punteropila;

function datoentrado : string;
var
da : string;
begin
clrscr;
da := ' ';
writeln(' **** Entrada Datos Pila ****');
writeln;
write(' Entre Dato : ');
readln(da);
datoentrado := copy(da,1,length(da));
end;

procedure meterdatos;
var
nuevo : punteropila;
begin
if datopila = nil then
begin
new(datopila);
datopila^.nombre := datoentrado;
datopila^.sig := nil;
end
else
begin
new(nuevo);
nuevo^.nombre := datoentrado;
nuevo^.sig := datopila;
datopila := nuevo;
end;
end;

procedure eliminadatosprimero;
var
tempo : punteropila;
dat : string;
begin
if datopila <> nil then
begin
dat := datopila^.nombre;
tempo := datopila;
datopila := datopila^.sig;
dispose(tempo);
writeln;
writeln('El Elemento a Nulado : ',dat);
writeln;
writeln('Pulsa Una Tecla');
readkey;
end
else
begin
clrscr;
writeln;
writeln('La Pila Esta Vacia [Pulse Enter]');
readln;
end;
end;

procedure listardatos;
var
temp : punteropila;
begin
temp := datopila;
while temp <> nil do
begin
writeln(temp^.nombre);
temp := temp^.sig;
end;
writeln;
writeln(' Pulse Una Tecla');
readkey;
end;

procedure menu;
var
tecl : char;
sal : boolean;
begin
sal := false;
repeat
clrscr;
writeln('******* Menu Principal *********');
writeln;
writeln(' 1 = Entrada Datos Pila');
writeln(' 2 = Anular 1§ Dato Pila ');
writeln(' 3 = Lista Pila');
writeln(' 4 = salir');
writeln;
writeln('<<<<< Elija Opcion >>>>>');
repeat
tecl := readkey;
until tecl in[#49..#52];
case tecl of
#49 : begin clrscr; meterdatos; end;
#50 : begin clrscr; eliminadatosprimero; end;
#51 : begin clrscr; listardatos; end;
#52 : sal := true;
end;
until sal = true;
end;

begin
datopila := nil;
menu;
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar