Listas
Desapilar
class Nodo:
def _init_(self, dato):
self.dato = dato
self.siguiente = None
self.anterior = None
class ListaNodos:
def _init_(self):
self.cabeza = None
self.cola = None
def apilar(self, dato):
nuevo_nodo = Nodo(dato)
if self.cola is None:
self.cola = nuevo_nodo
self.cabeza = nuevo_nodo
else:
nuevo_nodo.siguiente = self.cola
self.cola.anterior = nuevo_nodo
self.cola = nuevo_nodo
def desapilar(self):
if self.cabeza is None:
print("NO HAY NADA PARA DESAPILAR")
else:
dato = self.cola.dato
self.cola = self.cola.siguiente
if self.cola is not None:
self.cola.anterior = None
else:
self.cabeza = None
return dato
def mostrar(self):
if self.cabeza is None:
print("NO HAY NADA PARA MOSTRAR")
else:
nodo_actual = self.cabeza
while (nodo_actual!=None):
print(nodo_actual.dato)
nodo_actual = nodo_actual.anterior
def mostrar_menu():
print("\n--- MENÚ ---")
print("1. Apilar")
print("2. Desapilar")
print("3. Mostrar")
print("4. Salir")
opcion = input("Ingrese su opción: ")
return opcion
lista = ListaNodos()
while True:
opcion = mostrar_menu()
if opcion == "1":
dato = input("Ingrese el elemento a apilar: ")
lista.apilar(dato)
elif opcion == "2":
dato_desapilado = lista.desapilar()
if dato_desapilado:
print("Elemento desapilado:", dato_desapilado)
elif opcion == "3":
lista.mostrar()
elif opcion == "4":
print("Hasta pronto!")
break