estoy haciendo unas operaciones básicas usando pilas quiero hacer lo siguiente:
1)función recursiva que me devuelve el mayor de los elementos almacenados en una pila sin modificar su contenido.
2)procedimiento recursivo que me imprime el contenido de la pila sin modificar sus datos en el mismo orden que están almacenados
3)procedimiento recursivo que me elimine todas las apariciones de un
elemento x.
todas estas operaciones se hace a nivel de utilización es decir sin suponer
nada acerca de la estructura del tipo pila.(sin array o memoria dinámica)
hicé las siguientes operaciones pero no estoy seguro si están bien asi
si tenéis una versión mejor estaré agradecido si me lo podéis facilitar:
1)función máximopila(E/S p:Tipopila):
Código:
variables :
may ,e : natural
inicio:
may=0.
si (esvacia(p)) entonces //si la pila es vacia
resultado=0; //termina la función qui
sino
e=sacarp(p). //me devuelve el elemento que está en la cima
borrarp(p), // si pongo el borrar aqui voy a modificar el contenido de la pila y lo que se pide es sin modificar el contenido de los datos asi pasa con todos los procedimientos
si (e>may) entonces
may=e;
sino
resultado=maximopila(p)
finsi
resultado=mayor
Código:
varibales
e : tnatural
incio
si esvacia(p) entonces
escribir (la pila está vacia )
sino
e=Sacarp(p)
escribir(e)
escribirpila(p)
Código:
3) proc eliminarp(E/S p :tpila,E x :natural)
inicio
si esvacia(p) entonces
escribir ( no se puede eliminar datos de una pila vacia)
sino
e=Sacarp(p)
si e=x entonces
borrarp(p)
sino
eliminarp(p,e)
Fs
fin
Muchisima gracias de antemano
saludos