class Nodo: def __init__(self, dato): self.info = dato self.LD = None self.LI = None class LDLCIRCULAR: def __init__(self): self.primero = None self.ultimo = None def Insertar(self, NEW_X): if (self.primero == None): self.primero = NEW_X self.primero.LD = self.primero self.ultimo = self.primero self.primero.LI = self.ultimo else: y = self.BuscarInsertar(NEW_X.info) NEW_X.LD = y.LD NEW_X.LI = y temp = NEW_X.LI temp.Ld = NEW_X temp = NEW_X.LD temp.Li = NEW_X def BuscarInsertar(self, dato): temp = self.primero.LD y = self.primero while (temp != self.primero and temp.info < dato): y = temp temp = temp.Ld return y def UltimoNodo(self): temp = self.primero while (temp.LD != self.primero): temp = temp.LD self.ultimo = temp def MostrarLista(self): temp = self.primero print("Ultimo", end=" ") print(" <- ", end=" ") while (temp.LD != self.primero): print(temp.info, end=" ") print(" <- -> ", end=" ") temp = temp.LD print(temp.info, end=" ") print(" -> ", end=" ") temp = temp.LD print("Primero") def Menu(): op = 0 while(op != 3): print("Listas doblemnte ligadas circulares") print("1. ingresar") print("2. Salir") print("") op = int(input("Ingrese una Opción: ")) if op == 1: lista= LDLCIRCULAR() dato = input("Ingrese el Dato que Desea ") lista.Insertar(Nodo(dato)) lista.MostrarLista() elif op == 2: print(" Programa Finalizado ") break LDLCIRCULAR.Menu()