class Nodo: def __init__(self, dato): self.info = dato self.Ld = None self.Li = None class Lista: def __init__(self): self.primero = None self.ultimo = None def UltimoNodo(self): temp = self.primero while (temp != None): temp = temp.Ld self.ultimo = temp def BuscarInsertar(self, dato): y = 0 temp = self.primero while (temp != None and temp.info < dato): y = temp temp = temp.Ld return y def Insertar(self, NuevoNodo): if (self.primero == None): self.primero = NuevoNodo else: y = self.BuscarInsertar(NuevoNodo.info) if (y == 0): NuevoNodo.Li = self.primero.Li NuevoNodo.Ld = self.primero self.primero.Li = NuevoNodo self.primero = NuevoNodo elif (y.Ld == None): NuevoNodo.Ld = y.Ld NuevoNodo.Li = y y.Ld = NuevoNodo self.UltimoNodo() else: NuevoNodo.Li = y NuevoNodo.Ld = y.Ld temp = y.Ld temp.Li = NuevoNodo y.Ld = NuevoNodo def MostrarLista(self): temp = self.primero while (temp != None): print(temp.info, end=" ") print(" <- -> ", end=" ") temp = temp.Ld print("Null") def EliminarNodo(self, dato): temp = self.primero self.UltimoNodo() eliminado = False if (temp == None): print("La lista está Vacía") eliminado = False elif (temp.info == dato): self.primero = temp.Ld self.primero.Li = None eliminado = True elif (self.ultimo == dato): self.ultimo = self.ultimo.Li self.ultimo.Ld = None eliminado = True else: while (temp != None): if (temp.info == dato): temp2 = temp.Li temp2.Ld = temp.Ld eliminado = True break temp = temp.Ld if (eliminado): print("El dato ha sido Eliminado correctamente") else: print("El dato No se encuentra en la Lista") lista1 = Lista() lista1.Insertar(Nodo(10)) lista1.Insertar(Nodo(30)) lista1.Insertar(Nodo(48)) lista1.Insertar(Nodo(53)) lista1.Insertar(Nodo(11)) lista1.Insertar(Nodo(25)) lista1.MostrarLista() lista1.EliminarNodo(100) lista1.EliminarNodo(10) lista1.EliminarNodo(53) lista1.MostrarLista()