class Nodo: def __init__(self,d): self.dato=d self.liga=None def asigna_liga(self,l): self.liga=l def retorna_dato(self): return self.dato def retorna_liga(self): return self.liga d= input("Ingrese dato") x=Nodo(d) d= input("Ingrese dato") y=Nodo(d) d= input("Ingrese dato") z=Nodo(d) x.asigna_liga(y) y.asigna_liga(z) d= input("Ingrese dato") y=Nodo(d) p=x.retorna_liga() print(p.retorna_dato()) x.retorna_liga().asigna_liga(y) y.asigna_liga(z) y=None z=None p=x while(p!=None): print(p.retorna_dato()) p=p.retorna_liga() #x.asigna_liga(x.retorna_liga().retorna_liga()) #y = x.retorna_liga() #x.asigna_liga(y.retorna_liga()) y = x.retorna_liga() y=y.retorna_liga() x.asigna_liga(y) y=None --------------------------- 2/mio -------------------------------- class Nodo: def __init__(self,d): self.dato=d self.liga=None def asigna_liga(self,l): self.liga=l d= int(input("Ingrese numero de 3 digitos enteros: ")) x=Nodo(d) d1 = d / 100 va = int(d1 % 100) c=Nodo(va) d2 = trun (va / 10) d3 = int (va % 10) b = Nodo(d2) p = Nodo(d3) --------------clase Nodo simple Edada -------------------- class Nodo: def __init__(self,ed): self.edad=ed self.liga=None def asigna_liga(self,l): self.liga=l def retorna_dato(self): return self.edad def retorna_liga(self): return self.liga x=Nodo(int(input("Edad: "))) p=x ant=x i=1 while(i<=3): x=Nodo(int(input("Edad: "))) ant.asigna_liga(x) ant=x i=i+1 ant=None x=None acumuladorPares=0 contador1=0 acumuladorMultiplo3=0 contador2=0 z=p while(z!=None): if(z.retorna_dato() % 2==0): acumuladorPares=acumuladorPares+z.retorna_dato() contador1=contador1+1 if(z.retorna_dato() % 3==0): acumuladorMultiplo3=acumuladorMultiplo3+z.retorna_dato() contador2=contador2+1 z=z.retorna_liga() if (contador1!=0): promedioP=acumuladorPares/contador1 if (contador2!=0): promedioM=acumuladorMultiplo3/contador2 if(promedioP>promedioM) and contador1!=0 and contador2: print("El promedio de pares es mayor ") elif(promedioM>promedioP) and contador1!=0 and contador2: print("El promedio de los multiplos de 3 es mayor ") else: print("Los promedios son iguales ") -------------------------------------------------------------- class Nodo: def __init__(self,ed): self.edad=ed self.liga=None def asigna_liga(self,l): self.liga=l def retorna_dato(self): return self.edad def retorna_liga(self): return self.liga n=(int(input("Numero de datos"))) cntgeneral=0 i=1 while(i<=n): b=(input(" Nombre ")) a=(int(input(" Digite 1 para mujer, 2 para hombre: "))) x=Nodo(int(input(" Edad: "))) p=x ant=x ant.asigna_liga(x) ant=x cntgeneral=cntgeneral+1 i=i+1 ant=None x=None prommujer=0 acmuj=0 cm=0 achom=0 ch=0 z=p while (z!=None): if (a==1): acmuj=acmuj+z.retorna_dato() cm=cm+1 if(a==2): achom=achom+z.retorna_dato() ch=ch+1 ------------------- Catalina ------------------------------------------------ ##valeria class Nodo: def __init__(self,ed): self.edad=ed self.liga=None self.nombre=None self.genero=None def asigna_liga(self,l): self.liga=l def asigna_nombre(self,n): self.nombre=n def asigna_genero(self,g): self.genero=g def retorna_dato(self): return self.edad def retorna_genero(self): return self.genero def retorna_liga(self): return self.liga n=(int(input("Ingrese cantidad de datos que desea ingresar: "))) x=Nodo(int(input("Edad: "))) p=x ant=x a=(input("Nombre: ")) c=(int(input("Digite 1 para mujer 2. para hombre : "))) x.asigna_nombre(a) x.asigna_genero(c) i=1 while(i PromH): print("Hay mas mujeres ") else: print("Hay mas hombres ") print("Porcentaje de mujeres: ",(100*contador1) /(contador1+contador2)) print("Porcentaje de hombres: ",(100*contador2) /(contador1+contador2)) ##https://pythontutor.com/visualize.html#code=%23%23valeria%0Aclass%20Nodo%3A%0A%20%20%20%20def%20__init__%28self,ed%29%3A%0A%20%20%20%20%20%20%20%20self.edad%3Ded%0A%20%20%20%20%20%20%20%20self.liga%3DNone%0A%20%20%20%20%20%20%20%20self.nombre%3DNone%0A%20%20%20%20%20%20%20%20self.genero%3DNone%0A%20%20%20%0A%20%20%20%20def%20asigna_liga%28self,l%29%3A%0A%20%20%20%20%20%20%20%20self.liga%3Dl%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20def%20asigna_nombre%28self,n%29%3A%0A%20%20%20%20%20%20%20%20self.nombre%3Dn%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20def%20asigna_genero%28self,g%29%3A%0A%20%20%20%20%20%20%20%20self.genero%3Dg%0A%20%20%20%0A%20%20%20%20def%20retorna_dato%28self%29%3A%20%0A%20%20%20%20%20%20%20%20return%20self.edad%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20def%20retorna_genero%28self%29%3A%20%0A%20%20%20%20%20%20%20%20return%20self.genero%0A%20%20%20%20%0A%20%20%20%20def%20retorna_liga%28self%29%3A%0A%20%20%20%20%20%20%20%20return%20self.liga%0A%20%20%20%0A%20%20%20%0An%3D%28int%28input%28%22Ingrese%20cantidad%20de%20datos%20que%20desea%20ingresar%3A%20%22%29%29%29%0Ax%3DNodo%28int%28input%28%22Edad%3A%20%22%29%29%29%0Ap%3Dx%0Aant%3Dx%0Aa%3D%28input%28%22Nombre%3A%20%22%29%29%0Ac%3D%28int%28input%28%22Digite%201%20para%20mujer%20%202.%20para%20hombre%20%3A%20%22%29%29%29%0Ax.asigna_nombre%28a%29%0Ax.asigna_genero%28c%29%0A%0Ai%3D1%0A%0A%0Awhile%28i%3Cn%29%3A%0A%20%20%20%20%20%20%20%20x%3DNodo%28int%28input%28%22Edad%3A%20%22%29%29%29%0A%20%20%20%20%20%20%20%20a%3D%28input%28%22Nombre%3A%20%22%29%29%0A%20%20%20%20%20%20%20%20c%3D%28int%28input%28%22Digite%201%20para%20mujer%20%202.%20para%20hombre%20%3A%20%22%29%29%29%0A%20%20%20%20%20%20%20%20ant.asigna_liga%28x%29%0A%20%20%20%20%20%20%20%20x.asigna_nombre%28a%29%0A%20%20%20%20%20%20%20%20x.asigna_genero%28c%29%0A%20%20%20%20%20%20%20%20ant%3D%20x%0A%20%20%20%20%20%20%20%20i%3Di%2B1%0A%20%20%20%20%20%20%20%20%23x%3DNodo%28i%29%0A%20%20%20%20%20%20%20%20%23p%3Dx%0A%20%20%20%20%20%0Aant%3DNone%0Ax%3DNone%0AacumuladorMujer%3D0%0Acontador1%3D0%0AacumuladorHombre%3D0%0Acontador2%3D0%0APromM%3D0%0APromH%3D0%0Az%3Dp%0A%0Awhile%28z!%3DNone%29%3A%0A%20%20%20%20if%28z.retorna_genero%28%29%3D%3D1%29%3A%0A%20%20%20%20%20%20%20%20acumuladorMujer%3DacumuladorMujer%2Bz.retorna_dato%28%29%0A%20%20%20%20%20%20%20%20contador1%3Dcontador1%2B1%0A%20%20%20%20if%28z.retorna_genero%28%29%3D%3D2%29%3A%0A%20%20%20%20%20%20%20%20acumuladorHombre%3DacumuladorHombre%2Bz.retorna_dato%28%29%0A%20%20%20%20%20%20%20%20contador2%3Dcontador2%2B1%0A%20%20%20%20z%3Dz.retorna_liga%28%29%20%20%20%0A%0Aif%20%28contador1!%3D0%29%3A%0A%20%20%20%20PromM%3DacumuladorMujer/contador1%0A%20%20%20%20print%28%22El%20promedio%20de%20mujeres%20es%3A%20%22,%20PromM%29%0Aelse%20%3A%0A%20%20%20%20print%28%22No%20hay%20mujeres%22%29%0Aif%20%28contador2!%3D0%29%3A%0A%20%20%20%20PromH%3DacumuladorHombre/contador2%0A%20%20%20%20print%28%22El%20promedio%20de%20hombres%20es%3A%20%22,%20PromH%29%0Aelse%20%3A%0A%20%20%20%20print%28%22No%20hay%20hombres%22%29%0A%20%20%20%20%0A%0Aif%28PromM%20%3E%20PromH%29%3A%0A%20%20%20%20print%28%22Hay%20mas%20mujeres%20%22%29%0Aelse%3A%0A%20%20%20%20print%28%22Hay%20mas%20hombres%20%22%29%0A%20%20%20%20%0Aprint%28%22Porcentaje%20de%20mujeres%3A%20%22,%28100*contador1%29%20/%28contador1%2Bcontador2%29%29%0Aprint%28%22Porcentaje%20de%20hombres%3A%20%22,%28100*contador2%29%20/%28contador1%2Bcontador2%29%29&cumulative=false&heapPrimitives=nevernest&mode=edit&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%222%22,%2212%22,%22n%22,%221%22,%2212%22,%22l%22,%221%22,%2213%22,%22li%22,%221%22%5D&textReferences=false lista = [1, 2, 3, 4, 5, 6, 7, 8, 9] nodos_impares = [] for i in range(len(lista)): if i % 2 != 0: nodos_impares.append(lista[i]) print(nodos_impares) --------------------------Clase5------------------------------------------------------- class Nodo: def __init__(self,d): self.dato=d self.liga=None #constructor clase Nodo def asigna_liga(self,l): self.liga=l def retorna_dato(self): return self.dato def retorna_liga(self): return self.liga #x=Nodo(10) class LSL: def __init__(self): self.primero=None self.ultimo=None def asignar(self,ele): if(self.primero==None): self.primero=ele if(self.ultimo!=None): self.ultimo.liga=ele self.ultimo=ele def mostrar(self): p=self.primero while(p!=None): print(p.dato) p=p.liga def sumar(self): suma=0 p=self.primero while(p!=None): suma=suma+p.retorna_dato() p=p.retorna_liga() return suma def nodo_impar(self): suma=0 p=self.primero i=-1 while(p!=None): p=p.retorna_liga() i=0 if i % 2 != 0: suma=suma+p.retorna_dato() p=p.retorna_liga() return suma lsl=LSL() while(True): print("1. Asignar: ") print("2. Mostrar: ") print("3. Sumar: ") print("4. Sume de la lista los nodos impares: ") print("5. Salir: ") print("Elija opción: ") opc=int(input(" "))#captra el dato if (opc == 1): d=int(input("Ingrese dato: ")) x=Nodo(d) lsl.asignar(x) elif(opc==2): lsl.mostrar() elif(opc==3): print("la suma es: ", lsl.sumar()) elif(opc==4): print("la suma de los nodos impares es: : ", lsl.nodo_impar()) else: break ------------------------Clase6----------------------- class Nodo: def __init__(self,d): self.dato=d self.liga=None def retorna_dato(self): return self.dato def retorna_liga(self): return self.liga class LSL: def __init__(self): self.primero=None self.ultimo=None def bdi(self,d): p=self.primero y=None while(p != None): if(p.dato= 4): print("Hasta pronto ") break https://pythontutor.com/visualize.html#code=class%20Nodo%3A%0A%20%20%20%20def%20__init__%28self,d%29%3A%0A%20%20%20%20%20%20%20%20self.dato%3Dd%0A%20%20%20%20%20%20%20%20self.liga%3DNone%0A%20%20%20%20def%20asigna_liga%28self,l%29%3A%0A%20%20%20%20%20%20%20%20self.liga%3Dl%20%20%20%20%0A%20%20%20%20def%20retorna_dato%28self%29%3A%0A%20%20%20%20%20%20%20%20return%20self.dato%0A%20%20%20%20def%20retorna_liga%28self%29%3A%0A%20%20%20%20%20%20%20%20return%20self.liga%20%20%20%20%0Aclass%20LSL%3A%0A%20%20%20%20def%20__init__%28self%29%3A%0A%20%20%20%20%20%20%20%20self.primero%3DNone%0A%20%20%20%20%20%20%20%20self.ultimo%3DNone%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20def%20bdi%28self,d%29%3A%0A%20%20%20%20%20p%3Dself.primero%0A%20%20%20%20%20y%3DNone%0A%20%20%20%20%20while%28p%20!%3D%20None%29%3A%0A%20%20%20%20%20%20%20%20%20if%28p.dato%3Cd%29%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20y%3Dp%0A%20%20%20%20%20%20%20%20%20%20%20%20%20p%3Dp.liga%0A%20%20%20%20%20%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20p%3DNone%0A%20%20%20%20%20return%20y%20%0A%20%20%20%20def%20insertar%28self,d,y%29%3A%0A%20%20%20%20%20%20%20%20x%3DNodo%28d%29%0A%20%20%20%20%20%20%20%20lsl.conectar%28x,y%29%0A%20%20%20%20def%20conectar%28self,x,y%29%3A%0A%20%20%20%20%20%20%20%20if%20%28y%3D%3DNone%29%3A%0A%20%20%20%20%20%20%20%20%20x.liga%3Dself.primero%0A%20%20%20%20%20%20%20%20%20if%28self.primero%3D%3DNone%29%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20self.ultimo%3Dx%0A%20%20%20%20%20%20%20%20%20self.primero%3Dx%0A%20%20%20%20%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20x.liga%3Dy.liga%0A%20%20%20%20%20%20%20%20%20%20%20%20y.liga%3Dx%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28y%3D%3Dself.ultimo%29%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self.ultimo%3Dx%0A%20%20%20%20def%20mostrar%28self%29%3A%20%20%20%0A%20%20%20%20%20%20%20%20p%3Dself.primero%0A%20%20%20%20%20%20%20%20while%28p!%3DNone%29%3A%0A%20%20%20%20%20%20%20%20%20print%28p.dato%29%0A%20%20%20%20%20%20%20%20%20p%3Dp.liga%0A%20%20%20%20def%20bdb%28self,d,y%29%3A%0A%20%20%20%20%20%20%20%20p%3Dself.primero%0A%20%20%20%20%20%20%20%20y%3DNone%0A%20%20%20%20%20%20%20%20while%28p%20!%3D%20None%29%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%28p.dato!%3Dd%29%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20y%3Dp%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20p%3Dp.liga%0A%20%20%20%20%20%20%20%20%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20p%3DNone%20%20%20%20%0A%20%20%20%20%20%20%20%20return%20y%0A%20%20%20%20def%20borrar%28self,d,y%29%3A%0A%20%20%20%20%20%20%20%20x%3DNodo%28d%29%0A%20%20%20%20%20%20%20%20if%20%28x%20%3D%3D%20None%29%3A%0A%20%20%20%20%20%20%20%20%20print%28%22dato%20no%20existe%22%29%0A%20%20%20%20%20%20%20%20%20return%0A%20%20%20%20%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20%20lsl.desconectar%28x,y%29%0A%20%20%20%20def%20desconectar%28self,x,y%29%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%28x%20!%3D%20self.primero%29%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20x.liga%28y.retorna_liga%28%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20if%28x%3D%3Dself.ultimo%29%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self.ultimo%3Dy%0A%20%20%20%20%20%20%20%20%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20x.liga%3Dy.liga%0A%20%20%20%20%20%20%20%20%20%20%20%20%20y.liga%3Dx%0A%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28y%3D%3Dself.ultimo%29%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self.ultimo%3DNone%0Alsl%3DLSL%28%29%20%0Awhile%28True%29%3A%0A%20%20%20%20print%28%22*****Menu****%22%29%0A%20%20%20%20print%28%221.%20Buscar%20donde%20insertar%22%29%0A%20%20%20%20print%28%222.%20borrar%22%29%0A%20%20%20%20print%28%223.%20Mostrar%22%29%0A%20%20%20%20print%28%224.%20Salir%22%29%0A%20%20%20%20opc%3Dint%28input%28%22Ingrese%20opcion%3A%20%22%29%29%0A%20%20%20%20if%20%28opc%20%3D%3D%201%29%3A%0A%20%20%20%20%20%20%20%20d%3Dint%28input%28%22ingrese%20dato%22%29%29%0A%20%20%20%20%20%20%20%20y%3Dlsl.bdi%28d%29%0A%20%20%20%20%20%20%20%20lsl.insertar%28d,y%29%0A%20%20%20%20if%28opc%20%3D%3D%202%29%3A%0A%20%20%20%20%20lsl.mostrar%28%29%20%0A%20%20%20%20if%28opc%20%3D%3D%203%29%3A%0A%20%20%20%20%20%20%20d%3Dint%28input%28%22ingrese%20dato%20a%20borrar%3A%20%22%29%29%0A%20%20%20%20%20%20%20y%3Dlsl.bdb%28d,y%29%0A%20%20%20%20%20%20%20lsl.borrar%28d,y%29%0A%20%20%20%20%20%0A%20%20%20%20if%28opc%20%3E%3D%204%29%3A%0A%20%20%20%20%20%20%20%20print%28%22Hasta%20pronto%20%22%29%0A%20%20%20%20%20%20%20%20break&cumulative=false&heapPrimitives=nevernest&mode=edit&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%221%22,%2210%22,%223%22,%2210%22%5D&textReferences=false Buscar donde borrar Hacer: Buscar, Borrar y Desconectar -------------------------- Clase doblemente ligadas -------------------------------------------- class ND: #metodos def __init__(self,d): self.li = None self.ld = None self.dato=d def asigna_dato(self,d): self.dato=d def asigna_ld(self,l): self.ld=l def asigna_li(self,l): self.li=l def retorna_dato(self): return self.dato def retorna_li(self): return self.li def retorna_ld(self): return self.ld d=input("INGRESE UN DATO") w=ND(d) d=input("INGRESE UN DATO") x=ND(d) d=input("INGRESE UN DATO") y=ND(d) d=input("INGRESE UN DATO") z=ND(d) w.asigna_ld(x) x.asigna_li(w) x.asigna_ld(y) y.asigna_li(x) y.asigna_ld(z) z.asigna_li(y) w=None y=None z=None d=input("Ingrese un dato: ") y=ND(d) y.asigna_ld(x.retorna_ld()) y.asigna_li(x) y.retorna_ld().asigna_li(y) x.asigna_ld(y) y=None p=x.retorna_li() x.retorna_li().asigna_ld(x.retorna_ld()) x.retorna_ld().asigna_li(x.retorna_li()) while(p!=None): print("EL DATO ES ", p.retorna_dato()) p=p.retorna_ld() Ejercicio elabore un programa que cree una lista doblemente ligada con n edades, luego calcule la edad promedio y luego muestre aquellas edades que sean menores iguales que el promedio