# 1. almacenar los datos de los distintos dinosaurios que hay en la isla, de cada uno se # conoce su nombre, código de cinco dígitos y zona de ubicación (un dígito y un carácter # por ejemplo 7A), existen varios dinosaurios con el mismo nombre pero sus códigos son # distintos, los códigos no pueden ser repetidos (tenga cuidado); # 2. se deben almacenar los datos en dos arboles uno ordenado por nombre y otro por # código; # 3. realizar un barrido en orden del árbol ordenado por nombre; # 4. mostrar toda la información del dinosaurio 00792; # 5. mostrar toda la información de todos los T-Rex que hay en la isla; # 6. modificar el nombre del dinosaurio en Sgimoloch en ambos arboles porque esta mal # cargado, su nombre correcto es Stygimoloch; # 7. mostrar la ubicación de todos los Raptores que hay en la isla; # 8. contar cuantos Diplodocus hay en el parque; # 9. debe cargar al menos 15 elementos. dinosaurios = Arbol() dinosaurios_codigo = Arbol() datos_dinosaurios = [ { 'nombre': 'T-Rex', 'codigo': '12345', 'zona': '7C' }, { 'nombre': 'Raptor', 'codigo': '23456', 'zona': '3G' }, { 'nombre': 'Stegosaurus',
from arbol_binario import Arbol from random import randint arbol = Arbol() for i in range(20): numero = randint(1, 10) arbol.insertar_nodo(numero) print('inorden') arbol.inorden() print() # print('cantidad de ocurrencias', arbol.contar_ocurrencias(int(input('ingrese el valor ')))) print('cantidad de pares impares', arbol.contar_pares_impares()) # pos = arbol.busqueda(int(input('ingrese el numero a buscar '))) # if(pos is not None): # print('el valor esta', pos.info) # else: # print('el valor no esta') # arbol.eliminar_nodo(int(input('ingrese el numero a buscar '))) # print('postorden') # arbol.postorden() # print() # print('preorden') # arbol.preorden() # print()
# d. determinar los 3 héroes o dioses que derrotaron mayor cantidad de criaturas; # e. listar las criaturas derrotadas por Heracles; # f. listar las criaturas que no han sido derrotadas; # g. además cada nodo debe tener un campo “capturada” que almacenará el nombre del héroe # o dios que la capturo; # h. modifique los nodos de las criaturas Cerbero, Toro de Creta, Cierva Cerinea y Jabalí de # Erimanto indicando que Heracles las atrapó; # i. se debe permitir búsquedas por coincidencia; # j. eliminar al Basilisco y a las Sirenas; # k. modificar el nodo que contiene a las Aves del Estínfalo, agregando que Heracles # derroto a varias; # l. modifique el nombre de la criatura Ladón por Dragón Ladón; # m. realizar un listado por nivel del árbol; # n. muestre las criaturas capturadas por Heracles. arbol_criaturas = Arbol() datos = [{ 'nombre': 'Ceto', 'capturada': '', 'descripcion': '' }, { 'nombre': 'Cerda de Cromión', 'capturada': 'Teseo', 'descripcion': '' }, { 'nombre': 'Tifón', 'capturada': 'Zeus', 'descripcion': '' }, { 'nombre': 'Ortro',
from arbol_binario import Arbol tabla = [['Despejado', 0.22], ['Baja', 0.78]] dic = {} def como_comparo(arbol): return arbol.frecuencia bosque = [] for info, frecuencia in tabla: arbol = Arbol(info, frecuencia) bosque.append(arbol) bosque.sort(key=como_comparo) # for arbol in bosque: # print(arbol.info, arbol.frecuencia) while(len(bosque) > 1): arbol1 = bosque.pop(0) arbol2 = bosque.pop(0) nuevo_arbol = Arbol(frecuencia=arbol1.frecuencia+arbol2.frecuencia) nuevo_arbol.izq = arbol1 nuevo_arbol.der = arbol2 bosque.append(nuevo_arbol) bosque.sort(key=como_comparo)
def ejercicioParcialArbol(): dinosaurios = [{ "nombre": "T-rex", "codigo": 22553, 'ubicacion': '3B' }, { "nombre": "T-rex", "codigo": 32423, 'ubicacion': '7G' }, { "nombre": "Velocirraptor", "codigo": 35623, 'ubicacion': '7G' }, { "nombre": "Triceratop", "codigo": 75673, 'ubicacion': '2A' }, { "nombre": "Allosaurus", "codigo": 756, 'ubicacion': '2A' }, { "nombre": "Sgimoloch", "codigo": 22873, 'ubicacion': '8R' }, { "nombre": "Raptor", "codigo": 56734, 'ubicacion': '3C' }, { "nombre": "Raptor", "codigo": 11938, 'ubicacion': '9B' }, { "nombre": "Diplodocus", "codigo": 425, 'ubicacion': '10C' }, { "nombre": "Diplodocus", "codigo": 16364, 'ubicacion': '2H' }, { "nombre": "Diplodocus", "codigo": 45243, 'ubicacion': '8F' }, { "nombre": "Velocirraptor", "codigo": 467, 'ubicacion': '10F' }, { "nombre": "Baryonix", "codigo": 44521, 'ubicacion': '8F' }, { "nombre": "Styracosaurus", "codigo": 98437, 'ubicacion': '5D' }, { "nombre": "Diplodocus", "codigo": 52345, 'ubicacion': '11A' }, { "nombre": "Raptor", "codigo": 31245, 'ubicacion': '3B' }, { "nombre": "Stygimoloch", "codigo": 56623, 'ubicacion': '3C' }] arbolNombre = Arbol() arbolCodigo = Arbol() for elementos in dinosaurios: arbolNombre = arbolNombre.insertar_nodo(elementos["nombre"], elementos) arbolCodigo = arbolCodigo.insertar_nodo(elementos["codigo"], elementos) # Punto 2 arbolNombre.inorden() print() # Punto 3 pos = arbolCodigo.busqueda(756) print(pos.datos) print() # Punto 5 arbolNombre.tRexEnIsla('T-rex') print() # Punto 6 nombre, datos = arbolNombre.eliminar_nodo('Sgimoloch') arbolNombre = arbolNombre.insertar_nodo( nombre, datos) # Eliminar y re-insertar porque el campo clave es el nombre arbolCodigo.modificarSgimoloch('Sgimoloch') # Punto 7 print('Ubicacion de los raptores: ') arbolNombre.ubicacionRaptores('Raptor') print() # Punto 8 cantidadDiplodocus = arbolNombre.contarDiplodocus('Diplodocus') print('La cantidad de Diplodocus en el parque es', cantidadDiplodocus)
# encontrarlo en el árbol y modificar su nombre; # f.listar los superhéroes ordenados de manera descendente; # g.generar un bosque a partir de este árbol, un árbol debe contener a los superhéroes y otro a # los villanos, luego resolver las siguiente tareas: MCU = [ {'nombre' : 'Iron Man', 'heroe' : True}, {'nombre' : 'Spider Man', 'heroe' : True}, {'nombre' : 'Hulk', 'heroe' : True}, {'nombre' : 'Thanos', 'heroe' : False}, {'nombre' : 'Dr. Strange', 'heroe' : True}, ] arbolMCU = Arbol() for personaje in MCU: arbolMCU= arbolMCU.insertar_nodo(personaje['nombre'], personaje) # Ejercicio b arbolMCU.inorden() # Ejercicio c arbolMCU.busqueda_proximidad('C') # ejercicio d print(arbolMCU.contar_nodos()) # ejercicio e
'codigo': 792, 'zona ubicacion': '9D' }, { 'nombre': 'Raptor', 'codigo': 54399, 'zona ubicacion': '1A' }, { 'nombre': 'T-Rex', 'codigo': 55547, 'zona ubicacion': '5A' }, ] arbol_nombre = Arbol() arbol_cod = Arbol() for dinosaurio in datos: arbol_nombre = arbol_nombre.insertar_nodo(dinosaurio['nombre'], dinosaurio) for dinosaurio in datos: arbol_cod = arbol_cod.insertar_nodo(dinosaurio['codigo'], dinosaurio) # # Punto 3 Barrido en orden por nombre # arbol_nombre.inorden() # # Punto 4 Info del dino 792 # print ('Informacion del dinosaurio cuyo codigo es 792') # arbol_cod.mostrar_informacion_codigo(792)
def ejercicio23(): arbol = Arbol() criaturas = [{ 'nombre': "Ceto", 'derrotadoPor': '', 'descripcion': '', 'capturadoPor': '' }, { 'nombre': 'Tifon', 'derrotadoPor': 'Zeus', 'descripcion': '', 'capturadoPor': '' }, { 'nombre': 'Equidna', 'derrotadoPor': 'Argos Panoptes', 'descripcion': '', 'capturadoPor': '' }, { 'nombre': 'Dino', 'derrotadoPor': '', 'descripcion': '', 'capturadoPor': '' }, { 'nombre': 'Pefredo', 'derrotadoPor': '', 'descripcion': '', 'capturadoPor': '' }, { 'nombre': 'Enio', 'derrotadoPor': '', 'descripcion': '', 'capturadoPor': '' }, { 'nombre': 'Escila', 'derrotadoPor': '', 'descripcion': '', 'capturadoPor': '' }, { 'nombre': 'Medusa', 'derrotadoPor': 'Perseo', 'descripcion': '', 'capturadoPor': '' }, { 'nombre': 'Ladon', 'derrotadoPor': 'Heracles', 'descripcion': '', 'capturadoPor': '' }, { 'nombre': 'Ortro', 'derrotadoPor': 'Heracles', 'descripcion': '', 'capturadoPor': '' }, { 'nombre': 'Talos', 'derrotadoPor': 'Medea', 'descripcion': '', 'capturadoPor': '' }, { 'nombre': 'Cerbero', 'derrotadoPor': 'Teseo', 'descripcion': '', 'capturadoPor': '' }, { 'nombre': 'Toro de Creta', 'derrotadoPor': '', 'descripcion': '', 'capturadoPor': '' }, { 'nombre': 'Jabali de Erimanto', 'derrotadoPor': '', 'descripcion': '', 'capturadoPor': '' }, { 'nombre': 'Cierva Cerinea', 'derrotadoPor': '', 'descripcion': '', 'capturadoPor': '' }, { 'nombre': 'Aves de Estinfalo', 'derrotadoPor': '', 'descripcion': '', 'capturadoPor': '' }, { 'nombre': 'Basilisco', 'derrotadoPor': '', 'descripcion': '', 'capturadoPor': '' }, { 'nombre': 'Sirenas', 'derrotadoPor': '', 'descripcion': '', 'capturadoPor': '' }] for elementos in criaturas: arbol = arbol.insertar_nodo(elementos['nombre'], elementos) arbol.inorden() print() # C talos = arbol.busqueda('Talos') if talos: print(talos.datos) # D print() lista = Lista() aux = [] arbol.nombreDioses(aux) for elementos in aux: cantidad = arbol.contarMuertes(elementos) dict = {'dios': elementos, 'cantidadMuertes': cantidad} lista.insertar(dict, 'cantidadMuertes') print('3 dioses con mas muertes:') print(lista.obtener_elemento(lista.tamanio() - 3)) print(lista.obtener_elemento(lista.tamanio() - 2)) print(lista.obtener_elemento(lista.tamanio() - 1)) print() # E criaturas = [] print('Criaturas derrotadas por Heracles') criaturas = arbol.criaturaDerrotadaPor('Heracles', criaturas) for elementos in criaturas: print(elementos) # F print() print('Criaturas sin derrotar') arbol.criaturasSinDerrotar() # H print() arbol.modificarCapturadoPor() # I print() busquedaCoincidencia = input( 'Letras iniciales del nombre que desea buscar:') arbol.busqueda_proximidad(busquedaCoincidencia) # J arbol.eliminar_nodo('Basilisco') arbol.eliminar_nodo('Sirenas') # K arbol.modificarAvesEstinfalo # L ladInfo, ladDatos = arbol.eliminar_nodo('Ladon') arbol = arbol.insertar_nodo('Dragon Ladon', ladDatos) # M print() print('Barrido por nivel') arbol.barrido_por_nivel() print() # N print('Criaturas capturadas por Heracles') arbol.capturadoPor('Heracles')
def ejercicio5(): arbol = Arbol() # Punto A, campo booleano personajes = [{ "nombre": "Capitan America", "esVillano": False }, { "nombre": "Viuda Negra", "esVillano": False }, { "nombre": "Thanos", "esVillano": True }, { "nombre": "Doctor Stran", "esVillano": False }] for elementos in personajes: arbol = arbol.insertar_nodo(elementos["nombre"], elementos) # Punto B arbol.inorden_villanos() # Punto C arbol.heroes_C() # Punto D print("Cantidad de superheroes", arbol.contar_superheroes()) # Punto E nombre_a_buscar = input("Ingrese el nombre a buscar ") arbol.busqueda_proximidad(nombre_a_buscar) cambio = input("Ingrese el nombre a modificar ") info, datos = arbol.eliminar_nodo(cambio) nuevo_nombre = input("Ingrese el nuevo nombre ") datos["nombre"] = nuevo_nombre nuevo_es_villano = input("Es villano? si/no ") if nuevo_es_villano == "si": datos["esVillano"] = True else: datos["esVillano"] = False arbol = arbol.insertar_nodo(datos["nombre"], datos) arbol.inorden() print() # Punto F arbol.postorden_superheroes() # Punto E arbolSuperheroe = Arbol() arbolVillano = Arbol() arbol.arboles_separados_heroe_villano(arbolSuperheroe, arbolVillano) arbolVillano.postorden() arbolSuperheroe.postorden()
from arbol_binario import Arbol from random import randint arbol = Arbol() # for i in range(20): # numero = randint(1, 10) # arbol.insertar_nodo(numero) # print('inorden') # arbol.inorden() # print() # print('postorden') # arbol.postorden() # print() # print('preorden') # arbol.preorden() # print() # # print('cantidad de ocurrencias', arbol.contar_ocurrencias(int(input('ingrese el valor ')))) # print('cantidad de pares impares', arbol.contar_pares_impares()) # pos = arbol.busqueda(int(input('ingrese el numero a buscar '))) # if(pos is not None): # print('el valor esta', pos.info) # else: # print('el valor no esta') # arbol.eliminar_nodo(int(input('ingrese el numero a buscar ')))
from arbol_binario import Arbol arbol = Arbol() criaturas = { "nombre": "Ceto", "derrotado_por": "", "descripcion": "", "capturada_por": "" } arbol = arbol.insertar_nodo(criaturas["nombre"], criaturas) criaturas = { "nombre": "Tifon", "derrotado_por": "Zeus", "descripcion": "", "capturada_por": "" } arbol = arbol.insertar_nodo(criaturas["nombre"], criaturas) criaturas = { "nombre": "Equidna", "derrotado_por": "Argos Panoptes", "capturada_por": "" } arbol = arbol.insertar_nodo(criaturas["nombre"], criaturas) criaturas = { "nombre": "Dino", "derrotado_por": "", "descripcion": "", "capturada_por": "" } arbol = arbol.insertar_nodo(criaturas["nombre"], criaturas)