Пример #1
0
# 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',
Пример #2
0
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()
Пример #3
0
# 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',
Пример #4
0
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)
Пример #5
0
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)
Пример #6
0
#  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
Пример #7
0
        '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()
Пример #10
0
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 ')))
Пример #11
0
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)