Beispiel #1
0
def modif_sw(arbol):
    file = abrir('starwars')
    busc = input('Ingrese nombre del personaje a modificar: ')
    val = busqueda_arbol(arbol, busc)
    if val is not None:
        print('1) Nombre')
        print('2) Altura')
        print('3) Peso')
        mod = input('Elija campo a modificar: ')
        sw = leer(file, pos)
        if mod == '1':
            nom = input('Ingrese el nuevo nombre: ')
            dato = Personaje(nom, sw.altura, sw.peso)
            modificar(file, pos, dato)
            sw = leer(file, pos)
            arbol = insertar_nodo(arbol, sw.nombre, pos)
        elif mod == '2':
            alt = int(input('Ingrese la nueva altura: '))
            dato = Personaje(sw.nombre, alt, sw.peso)
            modificar(file, pos, dato)
            sw = leer(file, pos)
            arbol = insertar_nodo(arbol, sw.nombre, pos)
        elif mod == '3':
            peso = int(input('Ingrese el nuevo peso: '))
            dato = Personaje(sw.nombre, sw.altura, peso)
            modificar(file, pos, dato)
            sw = leer(file, pos)
            arbol = insertar_nodo(arbol, sw.nombre, pos)
        else:
            print('ERROR')
    else:
        print('El personaje no existe')
    cerrar(file)
Beispiel #2
0
def inorden_peso(raiz, archivo):
    if raiz is not None:
        inorden_peso(raiz.izq, archivo)
        sw = leer(archivo, raiz.nrr)
        if sw.peso <= 75:
            print(raiz.info, '-', sw.peso)
        inorden_peso(raiz.der, archivo)
Beispiel #3
0
def inorden_altura(raiz, archivo):
    if raiz is not None:
        inorden_altura(raiz.izq, archivo)
        sw = leer(archivo, raiz.nrr)
        if sw.altura >= 1:
            print(raiz.info, '-', sw.altura)
        inorden_altura(raiz.der, archivo)
Beispiel #4
0
def inorden_personajesw(raiz, archivo):
    if raiz is not None:
        inorden_personajesw(raiz.izq, archivo)
        personaje = leer(archivo, raiz.nrr)
        if personaje[1] and personaje[2] and personaje[3]:
            print(raiz.info, '-', personaje[1], personaje[2], personaje[3])
        inorden_personajesw(raiz.der, archivo)
Beispiel #5
0
def busqueda_proximidad_archivo(raiz, buscado, archivo):
    if raiz is not None:
        if raiz.info[0:len(buscado)] == buscado:
            libro = leer(archivo, raiz.nrr)
            print(libro.isbn, libro.cant, libro.titulo, libro.autores)
        busqueda_proximidad_archivo(raiz.izq, buscado, archivo)
        busqueda_proximidad_archivo(raiz.der, buscado, archivo)
Beispiel #6
0
def inorden_ayguion(raiz, archivo):
    if raiz is not None:
        inorden_ayguion(raiz.izq, archivo)
        jedi = leer(archivo, raiz.nrr)
        if jedi[0][0].find('a') > -1 or jedi[0].find('-') > -1:
            print(raiz.info, '-', jedi[2])
        inorden_ayguion(raiz.der, archivo)
Beispiel #7
0
def inorden_especie(raiz, archivo):
    if raiz is not None:
        inorden_especie(raiz.izq, archivo)
        jedi = leer(archivo, raiz.nrr)
        if jedi[2].find('togruta') > -1 or jedi[2].find('cerean') > -1:
            print(raiz.info, '-', jedi[2])
        inorden_especie(raiz.der, archivo)
Beispiel #8
0
def inorden_lightsaber(raiz, archivo):
    if raiz is not None:
        inorden_lightsaber(raiz.izq, archivo)
        jedi = leer(archivo, raiz.nrr)
        if jedi[4].find('green') > -1:
            print(raiz.info, '-', jedi[4])
        inorden_lightsaber(raiz.der, archivo)
Beispiel #9
0
def inorden_jedimaster(raiz, archivo):
    if raiz is not None:
        inorden_jedimaster(raiz.izq, archivo)
        jedi = leer(archivo, raiz.nrr)
        if jedi[1].find('jedi master') > -1:
            print(raiz.info, '-', jedi[1])
        inorden_jedimaster(raiz.der, archivo)
Beispiel #10
0
def inorden_nombrank(raiz, archivo):
    if raiz is not None:
        inorden_nombrank(raiz.izq, archivo)
        jedi = leer(archivo, raiz.nrr)
        if jedi[1]:
            print(raiz.info, '-', jedi[1])
        inorden_nombrank(raiz.der, archivo)
Beispiel #11
0
def busqueda_archivo(raiz, cantidad, archivo):
    if raiz is not None:
        libro = leer(archivo, raiz.nrr)
        if libro.cant > cantidad:
            print(libro.isbn, libro.cant, libro.titulo, libro.autores)
        busqueda_archivo(raiz.izq, cantidad, archivo)
        busqueda_archivo(raiz.der, cantidad, archivo)
Beispiel #12
0
def inorden_poke_numero(raiz, archivo):
    if raiz is not None:
        inorden_poke_numero(raiz.izq, archivo)
        poke = leer(archivo, raiz.nrr)
        if poke.numero:
            print(raiz.info, '-', poke.nombre)
        inorden_poke_numero(raiz.der, archivo)
Beispiel #13
0
def inorden_debilidad(raiz, archivo, clave):
    if raiz is not None:
        inorden_debilidad(raiz.izq, archivo, clave)
        poke = leer(archivo, raiz.nrr)
        if poke.debilidad.find(clave) > -1:
            print(raiz.info, 'presenta debilidad al tipo', clave, '-',
                  poke.debilidad)
        inorden_debilidad(raiz.der, archivo, clave)
Beispiel #14
0
def inorden_tipo(raiz, archivo):
    if raiz is not None:
        inorden_tipo(raiz.izq, archivo)
        poke = leer(archivo, raiz.nrr)
        if poke.tipo.find('agua') > -1 or poke.tipo.find(
                'fuego') > -1 or poke.tipo.find(
                    'planta') > -1 or poke.tipo.find('electrico') > -1:
            print(raiz.info, 'es de tipo', poke.tipo)
        inorden_tipo(raiz.der, archivo)
Beispiel #15
0
def indiceDiosesToNario(archivo):
    '''Retorna un arbol nario del archivo (con formato específico) pasado. Cada nodo.info contiene un array'''
    raiz = None
    pos = 0

    raiz = insertarCampoNario(raiz, None, ["INDICE", "-", "-"])
    largo_archivo = len(archivo)

    ultimo_titulo1 = None
    ultimo_titulo2 = None

    while pos < largo_archivo:
        line = leer(archivo, pos)
        line = line.replace("\n", "")

        line_sin_numeros = line[line.find(" "):]

        datos_dios = line_sin_numeros.split(";")

        nombre = datos_dios[0].replace(" ", "")
        descripcion = datos_dios[1]
        madre = datos_dios[2]
        info = [nombre, descripcion, madre]

        if esTitulo1(line):
            raiz = insertarCampoNario(raiz, raiz.info, info, 0)
            ultimo_titulo1 = info

        if esTitulo2(line):
            info_del_padre = ultimo_titulo1

            raiz = insertarCampoNario(raiz, info_del_padre, info, 0)
            ultimo_titulo2 = info

        if esTitulo3(line):
            info_del_padre = ultimo_titulo2
            raiz = insertarCampoNario(raiz, info_del_padre, info, 0)

        pos += 1
        line = leer(archivo, pos)

    return raiz
Beispiel #16
0
def extraerDataPersonajes(ruta):
    '''Devuelve array con los datos y la posición de cada personaje almacenado en el archivo'''
    archivo = abrir(ruta)
    array = []
    pos = 0
    while pos < len(archivo):
        data_personaje = [leer(archivo, pos), pos]
        array.append(data_personaje)
        pos += 1

    return array
Beispiel #17
0
def indiceDirectorioToNario(archivo):
    '''Retorna un arbol nario del archivo (con formato específico) pasado. Cada nodo.info contiene un array'''
    arbol = None
    pos = 0

    arbol = insertarNario(arbol, None, "INDICE")
    largo_archivo = len(archivo)

    ultimo_titulo1 = None
    ultimo_titulo2 = None

    while pos < largo_archivo:
        line = leer(archivo, pos)
        line = line.replace("\n", "")

        nombre = "/" + line[line.find(" "):]
        nombre = nombre.replace(" ", "")
        condicion = esNombreDeArchivo(nombre)

        info = [nombre, condicion]

        if esTitulo1(line):
            arbol = insertarNario(arbol, "INDICE", info)

            ultimo_titulo1 = info

        if esTitulo2(line):
            padre = ultimo_titulo1
            arbol = insertarNario(arbol, padre, info)

            ultimo_titulo2 = info

        if esTitulo3(line):
            padre = ultimo_titulo2
            arbol = insertarNario(arbol, padre, info)

        pos += 1
        line = leer(archivo, pos)

    return arbol
Beispiel #18
0
def busquedaNroPoke(ruta_file, raiz, nro_buscado):
    '''Devuelve pokemon que haya encontrado con nro de pokedex solicitado'''
    pokemon = None

    encontrado = busquedaCampo(raiz, nro_buscado, 0)
    if encontrado:
        indice = encontrado.info[1]

        archivo = abrir(ruta_file)
        pokemon = leer(archivo, indice)
        cerrar(archivo)

    return pokemon
Beispiel #19
0
def consultaPersonaje(arbol, buscado, ruta_archivo):
    archivo = abrir(ruta_archivo)

    indice = obtenerIndice(arbol, buscado)

    if indice == -1:
        print("El personaje buscado no se encuentra")
    else:
        personaje = leer(archivo, indice)
        print("Nombre:", personaje.nombre)
        print("Altura:", personaje.altura)
        print("Peso:", personaje.peso)
        print()
Beispiel #20
0
def listaBusquedaTipoArbol(ruta, arbol, tipo):
    '''Devuelve lista de pokemons del tipo especificado, traidos desde el archivo'''
    lista = []

    indices_pokemon_tipo = []
    busqTipos(arbol, tipo, indices_pokemon_tipo)

    archivo = abrir(ruta)
    for indice in indices_pokemon_tipo:
        lista.append(leer(archivo, indice))
    cerrar(archivo)

    return lista
Beispiel #21
0
def listadoIndicesPeso(arbol, archivo):
    if arbol is not None:
        listadoIndicesPeso(arbol.izq, archivo)

        indice = obtenerIndice(arbol, arbol.info[0])
        if indice != -1:
            personaje = leer(archivo, indice)
            if (personaje.estado) and (personaje.peso < 75):
                print("Nombre:", personaje.nombre)
                print("Altura:", personaje.altura)
                print("Peso:", personaje.peso)
                print()

        listadoIndicesPeso(arbol.der, archivo)
Beispiel #22
0
def listaPokemonsNombre(ruta_file, raiz, nombre_buscado):
    '''Devuelve lista de pokemons que haya encontrado por proximidad'''
    indices_poke_a_obtener_data = []
    # En el arbol por nombre, se busca por proximidad, y se devuelve los indices de quienes coincidan
    obtenerIndicesPorNombre(raiz, nombre_buscado, indices_poke_a_obtener_data)

    # Por cada indice, se busca en el archivo y trae el objeto Pokemon del susodicho
    datos_pokemons = []

    archivo = abrir(ruta_file)
    for indice in indices_poke_a_obtener_data:
        datos_pokemons.append(leer(archivo, indice))
    cerrar(archivo)

    return datos_pokemons
Beispiel #23
0
def bajaPersonaje(arbol, ruta_archivo):
    '''La la baja (lógica) de un personaje'''
    archivo = abrir(ruta_archivo)

    buscado = input("Nombre del personaje buscado: ")

    indice = obtenerIndice(arbol, buscado)

    if indice == -1:
        print("Personaje no encontrado")
    else:
        personaje = leer(archivo, indice)
        personaje.estado = False

        modificar(archivo, personaje, indice)
        cerrar(archivo)

        print("Personaje dado de baja")

        arbol = generarArbolPersonajesNombre(ruta_archivo)

    return arbol
Beispiel #24
0
def modificarPersonaje(arbol, ruta_archivo):
    '''Busca un personaje, de encontrarlo, permite su modificación'''
    archivo = abrir(ruta_archivo)

    buscado = input("Nombre del personaje buscado: ")

    indice = obtenerIndice(arbol, buscado)

    if indice == -1:
        print("Personaje no encontrado")
    else:
        personaje = leer(archivo, indice)

        print("1- Nombre:", personaje.nombre)
        print("2- Altura:", personaje.altura)
        print("3- Peso:", personaje.peso)
        opcion = input("Seleccione campo a modificar: ")
        print()

        if (opcion in ["1", "2", "3"]):
            nuevo_valor = input("Nuevo valor: ")

            if opcion == "1":
                personaje.nombre = nuevo_valor
            elif opcion == "2":
                personaje.altura = float(nuevo_valor)
            elif opcion == "3":
                personaje.peso = float(nuevo_valor)

            modificar(archivo, personaje, indice)
            cerrar(archivo)

            arbol = generarArbolPersonajesNombre(ruta_archivo)
            print("Personaje Guardado")
        else:
            print("Opcion seleccionada incorrecta")

    return arbol
Beispiel #25
0
datos = [['Darth Vader', 1.85, 93], ['Chewbacca', 2.04, 113],
         ['C-3PO', 1.67, 72], ['Yoda', 0.9, 47], ['Boba Fett', 1.83, 78],
         ['Han Solo', 1.77, 83], ['Jabba el Hutt', 3.9, 531],
         ['Darth Maul', 1.78, 74]]

# se guarda datos en archivo
file = abrir('starwars')
for dato in datos:
    x = Personaje(dato[0], dato[1], dato[2])
    guardar(file, x)

# a
# se inserta nombres en arbol
pos = 0
while pos < len(datos):
    personaje = leer(file, pos)
    arbol = insertar_nodo(arbol, personaje.nombre, pos)
    #print(personaje.nombre, 'anadido en la posicion:', pos)
    pos += 1
cerrar(file)

print('Arbol de personajes:')
por_nivel(arbol)
print()

# b
print('1) Alta')
print('2) Baja')
print('3) Modificacion')
print('4) Salir')
control = input('Que desea hacer: ')
Beispiel #26
0
def inorden_name(raiz, archivo, jedis):
    if raiz is not None:
        inorden_name(raiz.izq, archivo, jedis)
        jedi = leer(archivo, raiz.nrr)
        jedis.append(jedi)
        inorden_name(raiz.der, archivo, jedis)
Beispiel #27
0
# guardar(file, l1)
# l1 = Libro('890', 'algoritmos', 'nuevo', 'uader', 230)
# guardar(file, l1)
# l1 = Libro('012', 'pyhton', 'nuevo', 'uader', 1000)
# guardar(file, l1)
# l1 = Libro('033', 'datos', 'nuevo', 'uader', 890)
# guardar(file, l1)

arbol_isbn = None
arbol_titulo = None
arbol_autores = None

# a b y c
pos = 0
while pos < len(file):
    libro = leer(file, pos)
    print(libro.isbn, libro.cant, libro.titulo)
    arbol_isbn = insertar_nodo(arbol_isbn, libro.isbn, pos)
    arbol_titulo = insertar_nodo(arbol_titulo, libro.titulo, pos)
    for autor in libro.autores.split(';'):
        arbol_autores = insertar_nodo(arbol_autores, autor, pos)
    pos += 1
cerrar(file)
print('')

pos = busqueda_arbol(arbol_isbn, '567')
if pos is not None:
    file = abrir('libros')
    libro = leer(file, pos.nrr)
    cerrar(file)
    print(libro.isbn, libro.cant, libro.titulo, libro.autores)
Beispiel #28
0
        self.nombre = nombre
        self.especie = especie
        self.año_nacimiento = año_nacimiento
        self.color_sable = color_sable
        self.ranking = ranking
        self.maestro = maestro

# a
arbol_nombre = None
arbol_ranking = None
arbol_especie = None

file = abrir('jedis')
pos = 0
while pos < len(file):
    jedi = leer(file, pos)
    arbol_nombre = insertar_nodo(arbol_nombre, jedi[0], pos)
    arbol_ranking = insertar_nodo(arbol_ranking, jedi[1], pos)
    arbol_especie = insertar_nodo(arbol_especie , jedi[2], pos)
    pos += 1
cerrar(file)

# lee archivo jedis
print('NOMBRE | RANKING | ESPECIE | MAESTRO | COLOR DE SABLE | ORIGEN | AÑO DE NACIMIENTO | ALTURA')
arch = abrir('jedis')
for i in range(0, len(arch)):
    print(leer(arch, i))
cerrar(arch)
print()

# b
Beispiel #29
0
         ['Weepinbell', 70, 'planta/veneno', 'fuego/volador/hielo']]

arbol = None
arbol_nombre = None
arbol_numero = None
arbol_tipo = None

file = abrir('pokemon')
for poke in datos:
    x = Pokemon(poke[0], poke[1], poke[2], poke[3])
    guardar(file, x)

# a
pos = 0
while pos < len(datos):
    poke = leer(file, pos)
    arbol = insertar_nodo(
        arbol, [poke.nombre, poke.numero, poke.tipo, poke.debilidad], pos)
    arbol_nombre = insertar_nodo(arbol_nombre, poke.nombre, pos)
    arbol_numero = insertar_nodo(arbol_numero, poke.numero, pos)
    arbol_tipo = insertar_nodo(arbol_tipo, poke.tipo, pos)
    pos += 1
cerrar(file)

# b
busc = input('Busqueda por nombre del pokemon. Ingrese: ')
busqueda_proximidad(arbol_nombre, busc)
print()

# c, d y e
file = abrir('pokemon')