class Nodo: def __init__(self, dato): self.dato = dato self.ld = None self.li = None class ListaDobleLigada: def __init__(self): self.primero = None self.ultimo = None def mostrar(self): p = self.primero if p==None: print("La lista esta vacia") else: while p != None: print(p.dato) p = p.ld def primer_dato(self, d): t = Nodo(d) self.primero = t self.ultimo = t def insertar_dato(self, d): nuevo_nodo = Nodo(d) nuevo_nodo.li = self.ultimo self.ultimo.ld = nuevo_nodo self.ultimo = nuevo_nodo def buscar_dato(self, d): p = self.primero while p != None: if p.dato == d: return p p = p.ld return print ("El dato no existe") def borrar_dato(self, d): nodo_a_borrar = self.buscar_dato(d) if nodo_a_borrar != None: if nodo_a_borrar == self.primero: self.primero = nodo_a_borrar.ld if self.primero != None: self.primero.li = None else: self.ultimo = None elif nodo_a_borrar == self.ultimo: self.ultimo = nodo_a_borrar.li if self.ultimo != None: self.ultimo.ld = None else: nodo_a_borrar.li.ld = nodo_a_borrar.ld nodo_a_borrar.ld.li = nodo_a_borrar.li del nodo_a_borrar ListaDobleLigada = ListaDobleLigada() contador = 0 while True: print("*Menú de opciones*") print("1. Insertar dato") print("2. Borrar un dato") print("3. Mostrar la lista") print("4. Salir") opc = int(input("Digite opción: ")) if opc == 1: d = int(input("Por favor, ingrese el dato: ")) if contador == 0: ListaDobleLigada.primer_dato(d) contador += 1 else: ListaDobleLigada.insertar_dato(d) elif opc == 2: d = int(input("Por favor, ingrese el dato a borrar: ")) ListaDobleLigada.borrar_dato(d) elif opc == 3: ListaDobleLigada.mostrar() elif opc == 4: break else: print("Opcion no valida, intente nuevamente")