コード例 #1
0
def get_Interseccion_De_Pilas(obj_Pila_1, Obj_Pila_2):
    elemento = None

    obj_aux_Pila = Pila()
    obj_aux_Pila_2 = Pila()
    obj_Interseccion_Pila = Pila()

    while (not obj_Pila_1.pila_vacia()):

        while (not Obj_Pila_2.pila_vacia()):

            elemento = Obj_Pila_2.desapilar()
            obj_aux_Pila_2.apilar(elemento)

            if (elemento == obj_Pila_1.elemento_cima()):
                obj_Interseccion_Pila.apilar(elemento)

        obj_aux_Pila.apilar(obj_Pila_1.desapilar())

        #Devuelvo elementos a la pila 2 para devolverla a como estaba
        while (not obj_aux_Pila_2.pila_vacia()):
            Obj_Pila_2.apilar(obj_aux_Pila_2.desapilar())

    #Devuelvo elementos a la pila 1 para devolverla a como estaba
    while (not obj_aux_Pila.pila_vacia()):
        obj_Pila_1.apilar(obj_aux_Pila.desapilar())

    return obj_Interseccion_Pila
コード例 #2
0
def insertar_El_Numero_Menor_al_Mayor_En_Pila(obj_Pila_A_Insertar_Numero,
                                              numero):

    obj_Numeros_Mayores_Pila = Pila()

    #Si se ingresa mas de 1 numero entro aqui
    if (not obj_Pila_A_Insertar_Numero.pila_vacia()):

        #Si es mayor lo inserto de una
        if (numero >= obj_Pila_A_Insertar_Numero.elemento_cima()):
            obj_Pila_A_Insertar_Numero.apilar(numero)

        else:

            # Evaluo todos los menores al numero incluyendo los iguales y los apilo
            # En la pila auxiliar obj_Numeros_Mayores_Pila
            # Despues cuando se rompa el bucle doy por hecho que llego a que
            # Numero es mayor al elemento de la cima o que no encontro ninguno

            while ((not obj_Pila_A_Insertar_Numero.pila_vacia())
                   and (numero < obj_Pila_A_Insertar_Numero.elemento_cima())):
                elemento = obj_Pila_A_Insertar_Numero.desapilar()
                obj_Numeros_Mayores_Pila.apilar(elemento)

            obj_Pila_A_Insertar_Numero.apilar(numero)

            #Coloco todos los numeros que eran mayores al numero ingresado
            while (not obj_Numeros_Mayores_Pila.pila_vacia()):
                obj_Pila_A_Insertar_Numero.apilar(
                    obj_Numeros_Mayores_Pila.desapilar())

    else:
        #Si no hay nada le inserto el primer numero esto para cuando se hace el primer bucle
        obj_Pila_A_Insertar_Numero.apilar(numero)
コード例 #3
0
def ejercicio_16():
    obj_Pila = Pila()
    obj_Pila2 = Pila()
    obj_Interseccion_Pila = Pila()

    personajes_Star_Wars_EP_V = [
        'Luke Skywalker', 'Han Solo', 'Darth Vader', 'Leia Organa', 'Yoda',
        'Capitán Needan', 'Almirante Ozzel', 'Lando Calrissian'
    ]

    personajes_Star_Wars_EP_VII = [
        'Kylo Ren', 'Rey', 'Han Solo', 'Luke Skywalker', 'C3PO', 'Leia Organa',
        'Chewbacca', '	Poe Dameron'
    ]

    for i in range(0, len(personajes_Star_Wars_EP_V)):
        obj_Pila.apilar(personajes_Star_Wars_EP_V[i])

    for i in range(0, len(personajes_Star_Wars_EP_VII)):
        obj_Pila2.apilar(personajes_Star_Wars_EP_VII[i])

    obj_Interseccion_Pila = get_Interseccion_De_Pilas(obj_Pila, obj_Pila2)

    while (not obj_Interseccion_Pila.pila_vacia()):
        print('El personaje ', obj_Interseccion_Pila.desapilar(),
              ' esta en ambas peliculas')
コード例 #4
0
def get_Dinero_Total(obj_Pila):
    obj_Aux_Pila = Pila()
    Vector = None
    total = 0.0

    while (not obj_Pila.pila_vacia()):
        Vector = obj_Pila.desapilar()
        obj_Aux_Pila.apilar(Vector)
        total += Vector[1]

    while (not obj_Aux_Pila.pila_vacia()):
        obj_Pila.apilar(obj_Aux_Pila.desapilar())

    return total
コード例 #5
0
def get_Total_Personas_Capturadas(obj_Pila):
    obj_Aux_Pila = Pila()
    contador = 0

    while (not obj_Pila.pila_vacia()):
        obj_Aux_Pila.apilar(obj_Pila.desapilar())

        if (obj_Aux_Pila.elemento_cima()[2] != 'Fallo'):
            contador += 1

    while (not obj_Aux_Pila.pila_vacia()):
        obj_Pila.apilar(obj_Aux_Pila.desapilar())

    return contador
コード例 #6
0
def get_Cantidad_Peliculas_En_La_Que_Aparece_Black_Widow(obj_Pila):
    obj_Aux_Pila = Pila()
    cant_peliculas = 0

    while ((not obj_Pila.pila_vacia())
           and (obj_Pila.elemento_cima()[0] != 'Black Widow')):
        obj_Aux_Pila.apilar(obj_Pila.desapilar())

    if (obj_Pila.elemento_cima()[0] == 'Black Widow'):
        cant_peliculas = len(obj_Pila.elemento_cima()) - 1

    while (not obj_Aux_Pila.pila_vacia()):
        obj_Pila.apilar(obj_Aux_Pila.desapilar())

    return cant_peliculas
コード例 #7
0
def get_Numero_Mision_Boba_Capturo_A_Han(obj_Pila):
    obj_Aux_Pila = Pila()
    Vector = None
    Mision = 1

    while ((not obj_Pila.pila_vacia())
           and (obj_Pila.elemento_cima()[2] != 'Han Solo')):
        Mision += 1
        Vector = obj_Pila.desapilar()
        obj_Aux_Pila.apilar(Vector)

    while (not obj_Aux_Pila.pila_vacia()):
        obj_Pila.apilar(obj_Aux_Pila.desapilar())

    return Mision
コード例 #8
0
def invertir_Pila_Sin_Perder_Elementos(pila_a_invertir):
    pila_Inversa = Pila()
    aux_Pila = Pila()

    #me da la pila invertida
    while (not pila_a_invertir.pila_vacia()):
        elemento = pila_a_invertir.desapilar()
        pila_Inversa.apilar(elemento)
        aux_Pila.apilar(elemento)

    #le devuelvo los elementos que desapile a la pila original
    while (not aux_Pila.pila_vacia()):
        pila_a_invertir.apilar(aux_Pila.desapilar())

    return pila_Inversa
コード例 #9
0
def get_Nombres_Que_Empiezan_Con_C_D_And_G(obj_Pila):
    obj_Aux_Pila = Pila()
    indice = 0
    Vector = []

    while (not obj_Pila.pila_vacia()):
        obj_Aux_Pila.apilar(obj_Pila.desapilar())

        if (obj_Aux_Pila.elemento_cima()[0][0] in ['C', 'D', 'G']):
            Vector.insert(indice, obj_Aux_Pila.elemento_cima()[0])
            indice += 1

    while (not obj_Aux_Pila.pila_vacia()):
        obj_Pila.apilar(obj_Aux_Pila.desapilar())

    return Vector
コード例 #10
0
def ejercicio_14():

    obj_Pila = Pila()
    opcion = 'y'
    numero = None
    elemento = None

    while (opcion == 'y'):
        numero = int(input('Ingrese un numero: '))

        insertar_El_Numero_Menor_al_Mayor_En_Pila(obj_Pila, numero)

        opcion = input('¿Volver a ingresar un numero? (Y/N): ').lower()

    while (not obj_Pila.pila_vacia()):
        print(obj_Pila.desapilar())
コード例 #11
0
def invertir_Cola(contenedor):
    obj_Cola = Cola()
    obj_Pila = Pila()

    for i in range(0, len(contenedor)):
        obj_Cola.arribo(contenedor[i])

    while(not obj_Cola.cola_vacia()):
        obj_Pila.apilar(obj_Cola.atencion())
    
    while(not obj_Pila.pila_vacia()):
        obj_Cola.arribo(obj_Pila.desapilar())

    for i in range(0, obj_Cola.tamanio()):
        contenedor[i] = obj_Cola.atencion()
    
    return contenedor
コード例 #12
0
def existe_Leila_O_Boba_En_Pila(personajes_star_wars):

    Estado = None
    aux_Pila = Pila()

    while ((not personajes_star_wars.pila_vacia())
           and (not (personajes_star_wars.elemento_cima()
                     in ('Boba Fet', 'Leia Organa')))):
        aux_Pila.apilar(personajes_star_wars.desapilar())

    if (personajes_star_wars.pila_vacia()):
        Estado = False
    else:
        Estado = True

    while (not aux_Pila.pila_vacia()):
        personajes_star_wars.apilar(aux_Pila.desapilar())

    return Estado
コード例 #13
0
def get_Pos_Groot_And_Roket(obj_Pila):
    obj_Aux_Pila = Pila()
    indice = obj_Pila.tamanio() - 1
    posicion_Groot = None
    posicion_Roket = None

    while ((not obj_Pila.pila_vacia())
           and ((posicion_Groot == None) or (posicion_Roket == None))):
        obj_Aux_Pila.apilar(obj_Pila.desapilar())

        if (obj_Aux_Pila.elemento_cima()[0] == 'Groot'):
            posicion_Groot = indice
        elif (obj_Aux_Pila.elemento_cima()[0] == 'Rocket Raccoon'):
            posicion_Roket = indice

        indice -= 1
    while (not obj_Aux_Pila.pila_vacia()):
        obj_Pila.apilar(obj_Aux_Pila.desapilar())

    return posicion_Groot, posicion_Roket
コード例 #14
0
def get_Personajes_Que_Aparecen_En_Mas_De_5_Peliculas_And_La_Cantidad(
        obj_Pila):
    obj_Aux_Pila = Pila()
    cant_peliculas = None
    indice = 0
    Vector = None
    Mat = [[]]

    while (not obj_Pila.pila_vacia()):
        obj_Aux_Pila.apilar(obj_Pila.desapilar())
        cant_peliculas = len(obj_Aux_Pila.elemento_cima()) - 1

        if (cant_peliculas > 5):
            Mat.insert(indice,
                       (obj_Aux_Pila.elemento_cima()[0], cant_peliculas))
            indice += 1

    while (not obj_Aux_Pila.pila_vacia()):
        obj_Pila.apilar(obj_Aux_Pila.desapilar())

    return Mat
コード例 #15
0
personajes_vii = ["Obi Wan", "Anakin", "Jar Jar", "Luke", "R2D2"]
pila_v = Pila()
pila_vii = Pila()
pila_aux = Pila()

for i in range(0, len(personajes_v)):  # Cargamos la pila del episodio V
    pila_v.apilar(personajes_v[i])

for i in range(0, len(personajes_vii)):  # Cargamos la pila del episodio VII
    pila_vii.apilar(personajes_vii[i])

# pila_v        pila_vii
#
#        Anakin              Anakin

while (not pila_v.pila_vacia()):
    if (pila_v.elemento_cima() == pila_vii.elemento_cima()):
        print('El personaje', pila_v.desapilar(),
              " se encuentra en ambas peliculas")
        pila_vii.desapilar()
        while (not pila_aux.pila_vacia()):
            pila_vii.apilar(pila_aux.desapilar())
    else:
        while (not pila_vii.pila_vacia()
               and pila_v.elemento_cima() != pila_vii.elemento_cima()):
            pila_aux.apilar(pila_vii.desapilar())

        if (pila_vii.pila_vacia()):
            pila_v.desapilar()
            while (not pila_aux.pila_vacia()):
                pila_vii.apilar(pila_aux.desapilar())
コード例 #16
0
dato = Personaje('rocket raccoonn', 5)
personaje.apilar(dato)
dato = Personaje('thor', 6)
personaje.apilar(dato)
dato = Personaje('pantera', 3)
personaje.apilar(dato)
dato = Personaje('fury', 20)
personaje.apilar(dato)
dato = Personaje('thanos', 2)
personaje.apilar(dato)
dato = Personaje('ford falcon', 1)
personaje.apilar(dato)

cont_posicion = 0

while (not personaje.pila_vacia()):
    x = personaje.desapilar()
    cont_posicion = cont_posicion + 1

    if (x.nombre == 'rocket raccoonn'):
        print('rocket raccoonn esta en la posicion ' + str(cont_posicion))
    if (x.nombre == 'groot'):
        print('groot esta en la posicion ' + str(cont_posicion))

    if (x.cant_peliculas >= 5):
        print(x.nombre + ', participo en mas de 5 peliculas. En total: ' +
              str(x.cant_peliculas))

    if (x.nombre == 'black widow'):
        print('black widow participo en ' + str(x.cant_peliculas) +
              ' peliculas')
コード例 #17
0
Boba = Pila()
Din = Pila()

misionesboba = Misiones("Urano", "Han", 1200)
Boba.apilar(misionesboba)
misionesboba = Misiones("Jupiter", "Arturito", 100)
Boba.apilar(misionesboba)

misionesdin = Misiones("Tierra", "Chubaka", 3000)
Din.apilar(misionesdin)
misionesdin = Misiones("Venus", "Darth", 4000)
Din.apilar(misionesdin)

gananciasBoba = 0
gananciasDin = 0
while (not Boba.pila_vacia() and not Din.pila_vacia()):
    x = Boba.desapilar()
    y = Din.desapilar()
    print(x.mision)
    print(y.mision)

    gananciasDin = gananciasDin + y.costo
    gananciasBoba = gananciasBoba + x.costo

if (gananciasBoba > gananciasDin):
    print(gananciasBoba)
else:
    print(gananciasDin)

misionesboba = Misiones("Urano", "Han", 1200)
Boba.apilar(misionesboba)
コード例 #18
0
"""14. Realizar un algoritmo que permita ingresar elementos en una pila, y que estos queden ordenados de forma creciente. Solo puede utilizar una pila auxiliar como estructura extra 
–no sepueden utilizar métodos de ordenamiento–."""


from pila import Pila

pila_principal = Pila()
pila_aux = Pila()
cantidad = int(0)

for i in range (0,100):
    elemento = str(input('Ingrese el elemento que desea apilar o "fin" para terminar: '))
    if (elemento != 'fin'):
        if pila_principal.pila_vacia() or (elemento >= pila_principal.elemento_cima()):
            pila_principal.apilar(elemento)
        else:
            while (not pila_principal.pila_vacia() and elemento < pila_principal.elemento_cima()):
                pila_aux.apilar(pila_principal.desapilar())
            pila_principal.apilar(elemento)
            while (not pila_aux.pila_vacia()):
                pila_principal.apilar(pila_aux.desapilar())
                if (elemento != 'fin'):
                    cantidad += 1
    else:
        break
        
print('\nLa pila ingresada y ordenada es: ')
pila_principal.print_pila()
コード例 #19
0
ファイル: test.py プロジェクト: BrunoFer1994/Algoritmos2021
pila_aux = Pila()

traje = Traje('Mark III', 'Avengers I', 'Dañado')
pila.apilar(traje)
traje = Traje('Mark I', 'Iron Man I', 'Destruido')
pila.apilar(traje)
traje = Traje('Mark XLIV', 'Capitan America: Civil War', 'Dañado')
pila.apilar(traje)
traje = Traje('Mark III', 'Iron Man I', 'Impecable')
pila.apilar(traje)
traje = Traje('Mark XXV', 'Avengers II', 'Dañado')
pila.apilar(traje)

control_traje = False

while(not pila.pila_vacia()):
    x = pila.desapilar()
    # punto a
    if(x.modelo == 'Mark XLIV'):
        print('el moelo Mark XLIV fue utilizado en', x.pelicula)
    #punto b
    if(x.estado == 'Dañado'):
        print('el modelo', x.modelo, 'resulto dañado')
    #punto c
    if(x.estado == 'Destruido'):
        print('el modelo', x.modelo, 'resulto destruido')
    else:
        pila_aux.apilar(x)
    if(x.pelicula == 'Capitan America: Civil War' or x.pelicula == 'Spiderman'):
        print(x.modelo, 'es utilizado en las peliculas indicadas')
コード例 #20
0
# nados de forma creciente. Solo puede utilizar una pila auxiliar como estructura extra –no se

# pueden utilizar métodos de ordenamiento–.

from pila import Pila
from random import randint

pila_numeros = Pila()
pila_aux = Pila()


for i in range(0, 10):
    numero = randint(0,100)
    # Otra opción es usar el metodo expresado debajo con un ciclo while
    #numero = int(input("Ingrese el número a introducir en la pila: "))
    if(pila_numeros.pila_vacia()):
        pila_numeros.apilar(numero)
    else:
        if(numero >= pila_numeros.elemento_cima()):
            pila_numeros.apilar(numero)
        else:
            while(not pila_numeros.pila_vacia() and pila_numeros.elemento_cima() > numero):
                pila_aux.apilar(pila_numeros.desapilar())

            pila_numeros.apilar(numero)

            while(not pila_aux.pila_vacia()):
                pila_numeros.apilar(pila_aux.desapilar())


while (not pila_numeros.pila_vacia()):
コード例 #21
0
pila_peliculas.apilar(Peliculas)
Peliculas = Films("Saul", 9)
pila_peliculas.apilar(Peliculas)
Peliculas = Films("Catman", 7)
pila_peliculas.apilar(Peliculas)
Peliculas = Films("Groot", 2)
pila_peliculas.apilar(Peliculas)
Peliculas = Films("Iron Man", 5)
pila_peliculas.apilar(Peliculas)

BlackWidow = 0
PosicionRocket = 0
PosicionGroot = 0
Iniciales = ["C", "D", "G"]

while (not pila_peliculas.pila_vacia()):
    x = pila_peliculas.desapilar()
    if (x.Nombre == "Groot"):
        PosicionGroot = pila_peliculas.tamanio()
    else:
        if (x.Nombre == "Rocket Raccoon"):
            PosicionRocket = pila_peliculas.tamanio()
    if (x.Cantidad > 5):
        print("Los actores que participaron en mas de 5 peliculas", x.Nombre)
        print("Y la cantidad total fueron ", x.Cantidad)
    if (x.Nombre == "Black Widow"):
        BlackWidow = BlackWidow + 1

    if (x.Nombre[0] in Iniciales):
        print("los actores que empiezan con esas letras son ", x.Nombre)
コード例 #22
0
from pila import Pila
import random

# Ejercicio 14
pila_numeros = Pila()
pila_aux = Pila()

datos = [random.randint(0, 1000) for _ in range(10)]

for i in range(0, len(datos)):
    numero = datos[i]

    if (pila_numeros.pila_vacia()):
        pila_numeros.apilar(numero)
    else:
        if (numero >= pila_numeros.elemento_cima()):
            pila_numeros.apilar(numero)
        else:
            while (not pila_numeros.pila_vacia()
                   and pila_numeros.elemento_cima() > numero):
                pila_aux.apilar(pila_numeros.desapilar())

            pila_numeros.apilar(numero)

            while (not pila_aux.pila_vacia()):
                pila_numeros.apilar(pila_aux.desapilar())
while (not pila_numeros.pila_vacia()):
    print(pila_numeros.desapilar())

#Ejercicio 16
pila_empire = Pila()
コード例 #23
0
def mostrar_PLanetas_En_Orden_De_Mision(obj_Pila):
    obj_Aux_Pila = Pila()
    obj_Aux_Pila = invertir_Pila_Sin_Perder_Elementos(obj_Pila)

    while (not obj_Aux_Pila.pila_vacia()):
        print('Planeta: ', obj_Aux_Pila.desapilar()[0])
コード例 #24
0
        pila_consonantes.apilar(caracter)
    else:
        pila_simbolos.apilar(caracter)

#! punto a
print('cantidad de vocales', pila_vocales.tamanio())
print('cantidad de consonantes', pila_consonantes.tamanio())
print('cantidad de simbolos', pila_simbolos.tamanio())

#! punto e
print('cantidad de vocales y simbolos son iguales ?', pila_vocales.tamanio()==pila_simbolos.tamanio())

#! punto b y d
cantidad_numeros = 0
cantidad_blancos = 0
while(not pila_simbolos.pila_vacia()):
    letra = pila_simbolos.desapilar()
    if(letra ==' '):
        cantidad_blancos +=1
    elif(ord(letra)>=48 and ord(letra)<=57):
        cantidad_numeros += 1

print('cantidad de espacios en blanco', cantidad_blancos)
print('cantidad de numeros', cantidad_numeros)

#! punto f letra z
while(not pila_consonantes.pila_vacia()):
    letra = pila_consonantes.desapilar()
    if(letra.lower()=='z'):
        print('hay una z')
        # break
コード例 #25
0
from pila import Pila

pila_datos=Pila()
pila_aux=Pila()

numeros = [0, 3, 1, 7, 2, 10]

for i in range(0,6):
    num=numeros[i]
    if (pila_datos.pila_vacia()):
        pila_datos.apilar(num)
    else:
        if (num > pila_datos.elemento_cima()):
            pila_datos.apilar(num)
        else:
            while (not pila_datos.pila_vacia() and pila_datos.elemento_cima()>num):
                pila_aux.apilar(pila_datos.desapilar())
            pila_datos.apilar(num) 
            while(not pila_aux.pila_vacia()):
                pila_datos.apilar(pila_aux.desapilar())
 
                  
while(not pila_datos.pila_vacia()):
       print(pila_datos.desapilar())