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
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)
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')
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
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
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
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
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
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
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())
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
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
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
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
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())
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')
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)
"""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()
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')
# 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()):
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)
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()
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])
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
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())