#lista doblemente ligada circular con registro cabeza: class Nodo: def __init__(self, dato): self.dato = dato self.liga_d = None self.liga_iz = None class DLC: def __init__(self): self.primero = None self.ultimo = None def insertar(self, x): if self.primero == None: self.primero = x x.liga_d = x x.liga_iz = x else: x.liga_iz = self.primero.liga_iz x.liga_d = self.primero self.primero.liga_iz.liga_d = x self.primero.liga_iz = x def borrar(self, dato): if self.primero == None: return False nodo_actual = self.primero while True: if nodo_actual.dato == dato: if nodo_actual.liga_iz == nodo_actual: self.primero = None else: nodo_actual.liga_iz.liga_d = nodo_actual.liga_d nodo_actual.liga_d.liga_iz = nodo_actual.liga_iz if nodo_actual == self.primero: self.primero = nodo_actual.liga_d return True nodo_actual = nodo_actual.liga_d if nodo_actual == self.primero: break return False def mostrar(self): if self.primero == None: print("La lista está vacía") else: nodo_actual = self.primero while True: print(nodo_actual.dato, end="/ ") nodo_actual = nodo_actual.liga_d if nodo_actual == self.primero: break lista = DLC() while True: print() print("Menú:") print("1. Insertar elemento:") print("2. Eliminar elemento:") print("3. Mostrar lista") print("4. Salir") print() opc=int(input("Seleccione una opción: ")) if opc==1: dato=int(input("Ingrese un número entero: ")) x = Nodo(dato) lista.insertar(x) elif opc ==2: dato = int(input("Ingrese el dato a borrar: ")) if lista.borrar(dato): print(f"Elemento {dato} borrado correctamente.") elif opc==3: lista.mostrar() elif opc==4: print("Chaoo BB.(>‿◠)✌ ") break else: print("opciòn no valida, intentalo de nuevo:\n ") print("(っ^▿^)")