def eliminarNodos(l1): aux = l1.inicio while (aux is not None): eliminar(l1, aux.info) aux = aux.sig print('Lista vacia') barridoLista(l1)
def numeros_primos(l): aux = l.inicio while (aux is not None): if identificar_primos(aux.info): eliminar(l, aux.info) aux = aux.sig print('Lista sin primos') barridoLista(l)
def eliminar_vocales(lista): aux = lista.inicio while aux is not None: if aux.info == 'a' or aux.info == 'e' or aux.info == 'i' or aux.info == 'o' or aux.info == 'u' or aux.info == 'A' or aux.info == 'I' or aux.info == 'E' or aux.info == 'O' or aux.info == 'U': eliminar(lista, aux.info) aux = aux.sig print('La lista sin vocales es : ') barrido_lista(lista)
def local_informatica(lista_stock, lista_proveedores): lista_disco_solido = Lista() lista_teclado_inalambrico = Lista() lista_aux = Lista() lista_aux1 = Lista() aux_proveedores = lista_proveedores.inicio aux_stock = lista_stock.inicio while (aux_proveedores is not None): encontrado = False while (aux_stock is not None) and (encontrado is False): if (aux_proveedores.info[0] == aux_stock.info[0]): aux_stock.info[5] = aux_stock.info[5] + aux_proveedores.info[5] encontrado = True aux_stock = aux_stock.sig if encontrado is False: insertar(lista_stock, aux_proveedores.info) aux_proveedores = aux_proveedores.sig aux_stock = lista_stock.inicio while (aux_stock is not None): if (aux_stock.info[1] == 'Pendrive') and (aux_stock.info[2] == 'Kingston'): eliminar(lista_stock, aux_stock.info) if (aux_stock.info[1] == 'Disco solido'): insertar(lista_disco_solido, aux_stock.info) elif aux_stock.info[1] == 'Teclado inalambrico': insertar(lista_teclado_inalambrico, aux_stock.info) aux_stock = aux_stock.sig aux_disco_solido = lista_disco_solido.inicio aux_teclado_inalambrico = lista_teclado_inalambrico.inicio costo_disco_solido = 0 costo_teclado_inalambrico = 0 while (aux_disco_solido is not None) or (aux_teclado_inalambrico is not None): costo_disco_solido = costo_disco_solido + (aux_disco_solido.info[4] * aux_disco_solido.info[5]) costo_teclado_inalambrico = costo_teclado_inalambrico + ( aux_teclado_inalambrico.info[4] * aux_teclado_inalambrico.info[5]) aux_disco_solido = aux_disco_solido.sig aux_teclado_inalambrico = aux_teclado_inalambrico.sig aux_stock = lista_stock.inicio while (aux_stock is not None): insertar(lista_aux, aux_stock.info, 1) insertar(lista_aux1, aux_stock.info, 2) aux_stock = aux_stock.sig print('------------------------------------------------------------') print("Listado ordenado por tipo: ") barridoLista(lista_aux) print('------------------------------------------------------------') print("Listado ordenado por marca: ") barridoLista(lista_aux1) print('------------------------------------------------------------') print('Costo de existencia del disco solido: ', costo_disco_solido) print('Costo de existencia del teclado inalambrico: ', costo_teclado_inalambrico) print('------------------------------------------------------------') barridoLista(lista_stock)
def eliminiar_nodo(comic): aux = comic.inicio while aux is not None: dato = aux.info if dato[0] == 'Linterna Verde': eliminar(comic, aux.info) aux = aux.sig print('Lista sin linterna verde: ' ) barrido_lista(comic)
def eliminar_vocales(l): aux = l.inicio while (aux is not None): if ord(aux.info.lower()) == 97 or ord(aux.info.lower()) == 101 or ord( aux.info.lower()) == 105 or ord( aux.info.lower()) == 111 or ord(aux.info.lower()) == 117: eliminar(l, aux.info) print('Se elimino', aux.info) aux = aux.sig barridoLista(l)
def NumerosPrimos(lista): aux = lista.inicio while (aux is not None): control = False for e in range(2, aux.info): if (aux.info % e == 0): control = True if control == True: eliminar(lista, aux.info) control = False aux = aux.sig
def eliminar_primos(lista): aux = lista.inicio while aux is not None: cd= 0 for i in range (1, aux.info): if aux.info % i == 0: cd += 1 if cd < 2: eliminar(lista, aux.info) aux = aux.sig print('Lista sin primos: ') barrido_lista(lista)
def separa_pares(l): lista_pares = Lista() aux = l.inicio while (aux is not None): if (aux.info % 2) == 0: insertar(lista_pares, aux.info) eliminar(l, aux.info) aux = aux.sig print('Lista de pares: ') barridoLista(lista_pares) print('Lista de impares') barridoLista(l)
def dividir_lista(lista): aux = lista.inicio lista_par = Lista() while aux is not None: if aux.info % 2 == 0 : insertar(lista_par, aux.info) eliminar(lista,aux.info) aux = aux.sig print('Lista par es :') barrido_lista(lista_par) print('la lista de impares es: ') barrido_lista(lista)
def elim_el(lista): print('LISTA:') barrido_lista(lista) aux = lista.inicio i = 0 while aux != None: if (i == tamanio_lista(lista)-1) : eliminar(lista,aux.info) print('') i+=1 aux = aux.sig print('Lista sin anteultimo nodo:') barrido_lista(lista)
def quitar_ta(tabla, hash, dato, criterio=None): '''Quita elementos de una tabla abierta''' pos = hash(dato, tabla) if tabla[pos] is not None: return eliminar(tabla[pos], dato.palabra, criterio) else: return None
def superheroes(l): aux = l.inicio while (aux is not None): dato = aux.info if dato[0] == "Linterna Verde": eliminar(l, aux.info) if dato[0] == "Wolverine": print('Anio de aparicion de Wolverine: ', dato[1]) if dato[0] == "Ant-Man": aux.info[3] = "Marvel" if dato[3].find("traje") >= 0 or dato[3].find("armadura") >= 0: print('Nombre: ', dato[0]) if dato[1] < 1963: print('Nombre: ', dato[0]) print('Casa: ', dato[2]) aux = aux.sig
def eliminar_vuelo(listaVuelos, numeroVuelo): eliminado = li.eliminar(listaVuelos, numeroVuelo, 'numeroVuelo') if eliminado is not None: print(f"Cantidad de dinero a devolver: ${recaudacion(eliminado.info)}") return recaudacion(eliminado.info) else: print("No se encontro el vuelo.")
def eliminarVocales(lista): aux = eliminar(lista, "a") while (aux is not None): aux = eliminar(lista, "a") aux = eliminar(lista, "e") while (aux is not None): aux = eliminar(lista, "e") aux = eliminar(lista, "i") while (aux is not None): aux = eliminar(lista, "i") aux = eliminar(lista, "o") while (aux is not None): aux = eliminar(lista, "o") aux = eliminar(lista, "u") while (aux is not None): aux = eliminar(lista, "u")
def vuelos(l): aux = l.inicio listado_atenas = Lista() turista_libre = Lista() totales_vuelos = Lista() programados = Lista() lista_aux = Lista() fecha = input('Ingrese la fecha para consultar vuelos: ') while (aux is not None): if aux.info[5] == 'Atenas': insertar(listado_atenas, aux.info) aux_lista_asientos = aux.info[7].inicio km = aux.info[6] total = 0 while (aux_lista_asientos is not None): if aux_lista_asientos.info[2] == 'Desocupado': if aux_lista_asientos.info[1] == 'Turista': insertar(turista_libre, aux.info) break if aux_lista_asientos.info[2] == 'Ocupado': if aux_lista_asientos.info[1] == 'Turista': total = total + (350 * km) else: total = total + (988 * km) aux_lista_asientos = aux_lista_asientos.sig datos = [aux.info[1], total] insertar(totales_vuelos, datos) if aux.info[3] == fecha: insertar(programados, aux.info) aux = aux.sig nro_vuelo = int(input('Ingrese el numero de vuelo: ')) nro = int(input('Ingrese el numero del asiento: ')) clase = input('Ingrese la clase: ') estado_asiento = 'Ocupado' persona = input('Ingrese el nombre de la persona') datos_venta_pasaje = [nro, clase, estado_asiento, persona] pos = busquedaLista(l, nro_vuelo, 1) if pos == -1: print('El vuelo no existe') else: aux = l.inicio if pos == 0: insertar(aux.info[7], datos_venta_pasaje) print('Pasaje vendido') else: for i in range(0, pos + 1): aux = aux.sig insertar(aux.info[7], datos_venta_pasaje) print('Pasaje vendido') vuelo_eliminar = int( input('Ingrese el numerod de vuelo que desea eliminar: ')) pos = busquedaLista(l, vuelo_eliminar, 1) if pos == -1: print('El vuelo no existe') else: aux = l.inicio if pos == 0: lista_aux = aux.info[7] else: for i in range(0, pos + 1): aux = aux.sig lista_aux = aux.info[7] eliminar(l, vuelo_eliminar, 1) print('Vuelos programados para la fecha ', fecha, ' :') barridoLista(programados) print('Vuelos con destino a Atenas: ') barridoLista(listado_atenas) print('Vuelos con asientos de clase turista disponibles: ') barridoLista(turista_libre) print('Total recaudado por cada vuelo: ') barridoLista(totales_vuelos) print('Se elimino el vuelo ', vuelo_eliminar, '. Listado de pasajeros: ') barridoLista(lista_aux)
def quitar_ta(tabla, hash, dato, criterio=None): posicion = hash(dato, tabla) if (tabla[posicion] is not None): return eliminar(tabla[posicion], dato.palabra, criterio) else: return None
print(aux.info) aux = aux.sig # Separar en dos listas los pares y los impares lista_uno = Lista() lista_par = Lista() lista_impar = Lista() for i in range(30): insertar(lista_uno, randint(0, 50)) #barrido(lista) while (not lista_vacia(lista_uno)): dato = eliminar(lista_uno, lista_uno.inicio.info) if (dato % 2 == 0): insertar(lista_par, dato) else: insertar(lista_impar, dato) print("Par ") barrido(lista_par) print("Impar ") barrido(lista_impar) # Otra forma de separar en pares e impares. lista2 = Lista() lista_par2 = Lista() lista_impar2 = Lista()
self.dni = dni def __str__(self): return self.apellido + " " + self.nombre + " " + str(self.dni) # persona = Persona('acosta', 'juan', 33) # dic = persona.__dict__ # print('nombre' in dic) lista = Lista() persona = Persona('acosta', 'juan', 33) insertar(lista, persona, 'apellido') persona = Persona('perez', 'martin', 35) insertar(lista, persona, 'apellido') persona = Persona('perez', 'jorge', 36) insertar(lista, persona, 'apellido') persona = Persona('bonato', 'ana', 34) insertar(lista, persona, 'apellido') barrido(lista) #perez martin persona1 = eliminar(lista, 80, 'dni') print('dato eliminado', persona1) barrido(lista) pos = busqueda(lista, 'perez', 'nombre') print(pos.info)
from tda_lista import Lista, insertar, eliminar, busqueda, barrido, lista_vacia from random import randint lista = Lista() for i in range(100): insertar(lista, chr(randint(65, 90))) barrido(lista) dato = eliminar(lista, 'A') while (dato is not None): dato = eliminar(lista, 'A') dato = eliminar(lista, 'E') while (dato is not None): dato = eliminar(lista, 'E') dato = eliminar(lista, 'I') while (dato is not None): dato = eliminar(lista, 'I') dato = eliminar(lista, 'O') while (dato is not None): dato = eliminar(lista, 'O') dato = eliminar(lista, 'U') while (dato is not None): dato = eliminar(lista, 'U') print() barrido(lista)
c.arribo(colaGuardianes, nPersonaje.info) nPersonaje = nPersonaje.sig print(colaGuardianes.tamanio) #D listaAnio = li.Lista() nPersonaje = listaPersonajes.inicio while nPersonaje is not None: if nPersonaje.info.anio > 1960 and nPersonaje.info.nombre_p != "": li.insertar(listaAnio, nPersonaje, 'nombre_s') nPersonaje = nPersonaje.sig #E if li.eliminar(listaPersonajes, "Vlanck Widow", 'nombre_s'): li.insertar( listaPersonajes, Personaje("Black Widow", 1961, "asd", "Guardianes de la galaxia"), 'nombre_s') #Ejercicio 3 #A def bernstein_libro(dato, tabla): """Función hash de Bernstein para cadenas.""" h = 0 for caracter in dato.titulo: h = h * 33 + ord(caracter) return h % len(tabla)
def aeropuertos(lista): for i in range(len(destinos)): num_v = i+1 d = randint(1,30) m = randint(1,12) a = randint(2020,2021) fecha = [d,m,a] kms = choice(km) cant = choice(asientos) dato = Vuelo(choice(empresas),num_v,cant,fecha,destinos[i],kms) insertar(lista,dato,'destino') aux = lista.inicio while aux != None: cant = aux.info.c_asientos p = cant//1.5 precio = 0 for i in range(cant): asiento = i+1 ocupado = choice(tru) if asiento < p: clase = 'Turista' precio = (75*kms) else: clase = 'Primera' precio = (203*kms) dato = Asiento(asiento,ocupado,clase,precio) insertar(aux.sublista,dato,'numero') aux = aux.sig # A aux = lista.inicio while not aux == None: if aux.info.destino == 'Atenas': print('Destino a Atenas: ') print(aux.info) if aux.info.destino == 'Miconos': print('Destino a Miconos: ') print(aux.info) if aux.info.destino == 'Rodas': print('Destino a Rodas: ') print(aux.info) aux = aux.sig print('') # B aux = lista.inicio while not aux == None: print() s_n = input('Desea ver los asientos libres de la clase turista del destino '+ aux.info.destino + ': ') if (s_n == 'S') or (s_n == 's'): pos = aux.sublista.inicio while not pos == None: if pos.info.clase == 'Turista' and pos.info.ocupado == False: print('El asiento '+ str(pos.info.numero) + ' esta desocupado') pos = pos.sig aux = aux.sig # C print() print('Total recaudado por cada vuelo') aux = lista.inicio while not aux == None: recaudado = 0 pos = aux.sublista.inicio while pos != None: if pos.info.ocupado == True: recaudado += pos.info.precio pos = pos.sig print('El vuelo nro '+str(aux.info.num_v)+', a '+ aux.info.destino +' recaudo: '+ str(recaudado)+ ' dinero.') aux = aux.sig print() # E s_n = None while (s_n != 'n') and (s_n != 'N'): s_n = input('Quiere comprar un nuevo pasaje? S/N: ') if (s_n == 'S') or (s_n == 's'): destino = input('Indique su destino: ') bus = None bus = busqueda_lista(lista,destino,'destino') if bus != None: compra = False while compra == False: pas = int(input('Elija numero de pasaje: (1/'+ str(bus.info.c_asientos) +') : ')) pos = bus.sublista.inicio while pos != None: if pos.info.numero == pas: if pos.info.ocupado == False: pos.info.ocupado = True print('Compra de pasaje exitosa.') print() compra = True break else: print('Lo siento, ese pasaje esta ocupado.') print() break pos = pos.sig # F print() elim = None while (elim != 'n') and (elim != 'N'): elim = input('Desea eliminar algun vuelo? S/N: ') if (elim == 's') or (elim == 'S'): vuelo = int(input('Indique con numero, el Nro de vuelo a eliminar: ')) bus = None bus = busqueda_lista(lista,vuelo,'num_v') if bus != None: b = input('- Seguro que desea eliminar el vuelo con destino a '+ bus.info.destino+' ? S/N: ') if (b == 's') or (b == 'S'): eliminar(lista,bus.info.num_v,'num_v') print('>>> Se ha eliminado el vuelo Nro: '+str(bus.info.num_v)+', con destino a '+ bus.info.destino ) pos= bus.sublista.inicio recaudado = 0 while pos != None: if pos.info.ocupado == True: recaudado += pos.info.precio pos = pos.sig print('>>> La cantidad de dinero a devolver es igual a: ' + str(recaudado)) print() # G print() print('Empresas y kilómetros de vuelos con destino a Tailandia:') aux = lista.inicio while aux != None: if aux.info.destino == 'Tailandia': print('__ La empresa '+aux.info.empresa + ' tiene un viaje a Tailandia de '+str(aux.info.kms)+' KMs.') aux = aux.sig
pos = aux.sublista.inicio c = 0 n = 0 while pos != None: if pos.info.episodio == 4: c += 1 elif pos.info.episodio == 5: c += 1 elif pos.info.episodio == 6: c += 1 else: n += 1 break pos = pos.sig if (c == 3) and (n == 0): eliminar(lista,aux.info.nombre,'nombre') print('Se ha eliminado al personaje '+ aux.info.nombre) p += 1 aux = aux.sig if p == 0: print('__No hay personajes que mostrar en esta lista.') print() # G print('Personajes Humanos cuyo planeta de origen es Alderaan;') aux = lista.inicio while aux != None: if (aux.info.especie == 'Humano') and (aux.info.planeta == 'Alderaan'): print(aux.info.nombre +': es Humano y su planeta natal es: ' + aux.info.planeta) aux = aux.sig print() # H
def starwars(l): lista_femeninos = Lista() lista_droide = Lista() """ personajes_4567 = personajes que aparecen en los episodios 4, 5, 6, 7 """ personajes_4567 = Lista() """ personajesMas850 = personajes que tienen mas de 850 anios """ personajesMas850 = Lista() """ personajesMas850 = lista de personajes que aparecen en episodios que no sean el 4,5,6 """ lista_aux_episodios = Lista() lista_humanos = Lista() # Listado de alutras menor a 70 lista_altura_menor = Lista() lista_episodios_chewbacca = Lista() aux = l.inicio while (aux is not None): if aux.info[3] == 'femenino': insertar(lista_femeninos, aux.info[0]) if aux.info[4] == 'droide' and (aux.info[6] > 0 or aux.info[6] <= 6): insertar(lista_droide, aux.info[0]) if aux.info[6] == 4 or aux.info[6] == 5 or aux.info[ 6] == 6 or aux.info[6] == 7: insertar(personajes_4567, aux.info[0]) if aux.info[6] != 4 or aux.info[6] != 5 or aux.info[6] != 6: insertar(lista_aux_episodios, aux.info) if aux.info[0] == 'Darth Vader': info_darth = aux.info if aux.info[2] >= 850: insertar(personajesMas850, aux.info) if aux.info[4] == 'humana' and aux.info[5] == 'Alderan': insertar(lista_humanos, aux.info[0]) if aux.info[1] < 70: insertar(lista_altura_menor, aux.info) if aux.info[0] == 'Chewbacca': insertar(lista_episodios_chewbacca, aux.info) aux = aux.sig aux = personajes_4567.inicio while (aux is not None): control = busquedaLista(lista_aux_episodios, aux.info[0]) if control == -1: eliminar(l, aux.info) aux = aux.sig aux = personajesMas850.inicio may_edad = 0 while (aux is not None): if aux.info[2] > may_edad: may_edad = aux.info aux = aux.sig print('Personajes de genero femenino: ') barridoLista(lista_femeninos) print( 'Personajes de especie Droide que aparecen en los primeros 6 episodios: ' ) barridoLista(lista_droide) print('Informacion de Darth Vader: ') print(info_darth) print('Personajes que aparecen en el episodio VII y en los 3 anteriores: ') barridoLista(personajes_4567) print('Personajes mayores a 850 anios') barridoLista(personajesMas850) print('Y el mayor es: ') print(may_edad) print('Personajes de especie humana y planeta de origen Alderan') barridoLista(lista_humanos) print('Info de personajes con altura menor a 70') barridoLista(lista_altura_menor) print('Episodios en el que aparece Chewbacca') barridoLista(lista_episodios_chewbacca)
def eliminar_mostrar_nodos(lista): aux = lista.inicio while aux is not None: eliminar(lista, aux.info) print('Se elimino la siguiente información:', aux.info) aux = aux.sig