Está en la página 1de 1

UdeA – Ude@ Facultad de Ingeniería – Sistemas -. Lógica y Representación II ……………………………….. Profesor: Luis C.

Puerta

Manipular una pila (representada en una lista ligada), solución en POO, creando las clases Nodo y ListaLigada y a
través de un menú de opciones manipular una instancia (objeto, llamado objPila) de la clase ListaLigada.

clase Nodo //atributos clase Programa


privado entero numero publico estatico vacio Principal ()
privado Nodo liga caracter opc
//métodos entero elemento
publico Nodo (entero pNumero) //constructor
numero = pNumero ListaLigada objPila = nuevo ListaLigada ()
liga = λ
Fin (Nodo) //fin constructor HAGA
publico entero GetNumero() opc = Menu()
Regrese numero SELECCIONE EN CASO DE (opc)
Fin (GetNumero) Caso ‘1’:
publico Nodo RetornaLiga() IMPRIMA “Elemento a apilar: ”
Regrese liga LEA elemento
Fin (RetornaLiga) objPila.Apilar(elemento)
publico vacio AsignaLiga(Nodo pLiga) Caso ‘2’:
liga = pLiga SI (objPila.PilaVacia())
Fin (AsignaLiga) IMPRIMA “Pila vacía”
FIN (Nodo) //fin de la clase Nodo SiNo
elemento = objPila.Desapilar()
clase ListaLigada IMPRIMA “Elemento retirado”, elemento
privado Nodo cab, ult, x Fin (Si)
Caso ‘3’:
publico ListaLigada() //constructor
Si (objPila.PilaVacia())
cab = nuevo Nodo(0) IMPRIMA “Pila vacía”
ult = x = cab SiNo
elemento = objPila.MostrarPila()
Fin (ListaLigada) //fin constructor
MIENTRAS (elemento != 0)
IMPRIMA elemento
publico logico PilaVacia ()
elemento = objPila.MostrarPila()
Regrese (ult == cab || ult == λ)
Fin (MIENTRAS)
Fin (PilaVacia)
Fin (Si)
Caso ‘4’: IMPRIMA “Eligió salir, fin ejecución”
publico vacio Apilar (entero pNumero)
EOC:
Nodo p = nuevo Nodo(pNumero)
FIN (SELECCIONE)
Si (ult != cab && ult != λ)
MIENTRAS (opc != '4')
p.AsignaLiga(ult)
Fin (Si) FIN (Principal)
cab.AsignaLiga(p)
ult = p estatico caracter Menu ()
Fin (Apilar) caracter opcion
IMPRIMA “MENÚ DE OPCIONES MENEJO PILA”
publico entero Desapilar () IMPRIMA “1. Apilar”
entero datoDesapilado IMPRIMA “2. Desapilar”
datoDesapilado = ult.GetNumero() IMPRIMA “3. Mostrar Pila”
cab.AsignaLiga(ult.RetornaLiga()) IMPRIMA “4. Salir”
ult = cab.RetornaLiga() HAGA
Regrese datoDesapilado IMPRIMA “Opción: ”
Fin (Desapilar) LEA opción
MIENTRAS (opcion < ‘1’ || opcion > ‘4’)
publico entero MostrarPila () REGRESE opcion
x = x.RetornaLiga() Fin (Menu)
Si (x == λ) FIN (Programa) //fin de la clase Programa
x = cab
Fin (Si)
Regrese x.GetNumero()
Fin (MostrarPila)
FIN (ListaLigada) //fin de la clase ListaLigada

También podría gustarte