class nodo: def __init__(self, dato): self.dato = dato self.ld = None self.li = None class LDL: def __init__(self): self.cabeza = None self.li = None self.ld = None def vacia(self): ##verifica si esta vacia la lista if self.cabeza is None: return True #Donde insertar def bdi (self, dato): z=self.cabeza y=None while (z is not None) and (z.dato < dato): y=z z=z.ld nuevo=nodo(dato) if y == None: nuevo.li=None nuevo.ld=self.cabeza if z != None: self.cabeza.li=nuevo self.cabeza = nuevo elif y.ld == None: nuevo.ld=y.ld nuevo.li=y y.ld=nuevo else: nuevo.li=y nuevo.ld=y.ld z.li=nuevo y.ld=nuevo # Método para eleminar nodos def bdb (self, d): if self.cabeza == None: print('\n !Primero debe ingresar números!') else: z = self.cabeza y = None while z and z.dato != d : y = z z = z.ld if y is None: self.cabeza = z.ld y=z.ld z.ld = None if self.cabeza != None: y.li = None print('\n Número eliminado ') elif z is None: print('\n Ese número no se encuentra') elif z.ld is None: y.ld = None z.li = None print('\n Número eliminado ') else: y.ld = z.ld y=z z=z.ld z.li=y.li y.ld=None y.li=None print('\n Número eliminado ') # Método para imprimir la lista de nodos def imprimirnodos( self ): if self.cabeza == None: print('\n !Primero debe ingresar números!') else: print('''\n La lista es: ''') nodo = self.cabeza print(f''' |-- ↑ ↓''') while nodo != None: if nodo.dato > 9 and nodo.dato < 100: print(f''' __________ | | | {nodo.dato} | |________| ↑ ↓''') elif nodo.dato > 99 and nodo.dato < 1000: print (f''' __________ | | | {nodo.dato} | |________| ↑ ↓''') elif nodo.dato > 999: print (f''' ___________ | | | {nodo.dato} | |_________| ↑ ↓''') else: print(f''' _________ | | | {nodo.dato} | |_______| ↑ ↓''') nodo = nodo.ld print(f''' |-- ''') def recorreid(self):#recorre de izquierda a derecha if self.cabeza == None: print('\n !Primero debe ingresar números!') else: print('''\n La lista es: ''') z=self.cabeza h=None while (z!=None): ultimo=z z=z.ld h=ultimo print(f''' |-- ↑ ↓''') while h!= None: if h.dato > 9 and h.dato < 100: print(f''' __________ | | | {h.dato} | |________| ↑ ↓''') elif h.dato > 99 and h.dato < 1000: print (f''' __________ | | | {h.dato} | |________| ↑ ↓''') elif h.dato > 999: print (f''' ___________ | | | {h.dato} | |_________| ↑ ↓''') else: print(f''' _________ | | | {h.dato} | |_______| ↑ ↓''') h=h.li print(f''' |-- ''') def opciones(): print(''' ************************************************* * Selecciona una opción del menú * * ------------------------------ * * 1. Agregar un número * * 2. Mostrar lista * * 3. Mostrar lista de izquierda a derecha * * 4. Eliminar un número * * 5. Salir * ************************************************* ''')