class Nodo: def __init__(self, dato): self.dato = dato self.liga = None class ListaEnlasada: def __init__(self): self.cabeza = None self.ultimo_nodo = None self.promedio=0 self.l=0 self.m=False def cola(self): ultimo_nodo=self.cabeza while(ultimo_nodo.liga != None): ultimo_nodo = ultimo_nodo.liga return ultimo_nodo def insertar(self, nuevo_nodo): if self.cabeza: ultimo_nodo = self.cabeza while ultimo_nodo.liga != None: ultimo_nodo = ultimo_nodo.liga ultimo_nodo.liga = nuevo_nodo else: self.cabeza = nuevo_nodo def mostrar_lista(self): temp_nodo = self.cabeza while temp_nodo != None: print(temp_nodo.dato, end='->') temp_nodo = temp_nodo.liga print('Null') def desconectar(self,x,y): self.ultimo_nodo=self.cola() if(x!=self.cabeza): y.liga=x.liga if x==self.ultimo_nodo: self.ultimo_nodo=y else: self.cabeza=self.cabeza.liga if self.cabeza==None: self.ultimo_nodo=None def conectar(self,x,y): self.ultimo_nodo=self.cola() if(y != None): x.liga=y.liga y.liga=x if(y==self.ultimo_nodo): self.ultimo_nodo=x else: x.liga=self.cabeza if(self.cabeza==None): self.ultimo_nodo=x self.cabeza=x def ordenarascedente(self): self.ultimo_nodo=self.cola() p=self.cabeza ap=None while(p!= self.ultimo_nodo): menor=p a_menor=ap q=p.liga aq=p while(q!=None): if(q.dato < menor.dato): menor=q a_menor=aq aq=q q=q.liga if(menor.dato==p.dato): ap=p p=p.liga else: self.desconectar(menor,a_menor) self.conectar(menor,ap) ap=menor def menu(self): opcion=1 while opcion != 3: print("Bienvenido") print("ingrese 1 agregar") print("ingrese 2 para numero mayor y promedio") opcion=int(input("ingrese 3 para salir del programa ")) if opcion==1: self.m=True a=int(input("ingrese el dato ")) self.l=self.l+1 self.promedio=self.promedio+a promedio2=self.promedio/self.l self.insertar(Nodo(a)) self.ordenarascedente() self.mostrar_lista() if opcion==2: if self.m==True: r=self.cola() print ("el numero mayor es: ",r.dato) print ("el promedio es: ", promedio2) else: print ("debes de ingresar un dato para utilizar esta opcion") if opcion==3: print("menu finalizado") if (opcion<1 or opcion>3): print("opcion no valida") ##programa principal lista1=ListaEnlasada() lista1.menu()