def peliculas(): '''Pila de peliculas y sus datos''' pila = Pila() c = 0 titulo = [ 'Reservoir Dogs', 'Bohemian Rhapsody', 'Doctor Strange', 'Avengers: Infinity War', 'Guardianes de la galaxia' ] estudio = [ 'Marvel Studios', 'Artisan Entertainment', 'GK Films', 'Marvel Studios', 'Marvel Studios', 'Marvel Studios' ] anio = ['1992', '2018', '2016', '2018', '2014'] for i in range(0, 6): title, studio, year = titulo[i], estudio[i], anio[i] apilar(pila, [title, studio, year]) print('Peliculas:') barrido_pila(pila) while not pila_vacia(pila): dato = desapilar(pila) if dato[2] == '2014': print(str(dato[0]) + ' fue estrenada en 2014') if dato[2] == '2018': c += 1 if dato[1] == 'Marvel Studios' and str(dato[2]) == '2018': print(str(dato[0]) + ' fue producida por Marvel en el año 2018') print('Se estrenaron', c, 'peliculas en 2018')
def temperaturas(pila): pila = Pila() pila_aux = Pila() t_max = cima(pila) t_min = cima(pila) t_med = 0 v_mayores = 0 v_menores = 0 print('Temperaturas registradas en el mes:') barrido_pila(pila) while not pila_vacia(pila): dato = desapilar(pila) t_med += dato if dato < t_min: t_min = dato if dato > t_max: t_max = dato apilar(pila_aux, dato) grado = tamanio_pila(pila_aux) t_med = t_med / grado while not pila_vacia(pila_aux): dato = desapilar(pila_aux) if dato >= t_med: v_mayores += 1 else: v_menores += 1 print('Temperatura minima:', t_min, '°') print('Temperatura maxima :', t_max, '°') print('El rango de temperatura media:', round(t_med, 2), '°') print('Temperaturas mayores e iguales a la media:', v_mayores, '°') print('Temperaturas menores a la media:', v_menores, '°')
def interseccion_personajes(): pila_5 = Pila() pila_7 = Pila() pila_aux = Pila() e5 = [ 'Luke Skywalker', 'Lando Calrissian', 'Yoda', 'Chewbacca', 'Emperador Palpatine', 'C3PO' ] e7 = ['Rey', 'Finn', 'Luke Skywalker', 'Kylo Ren', 'Chewbacca', 'C3PO'] for i in range(0, len(e5)): apilar(pila_5, e5[i]) apilar(pila_7, e7[i]) print('Episodio V: The empire strikes back') barrido_pila(pila_5) print('Episodio VII: The force awakens') barrido_pila(pila_7) while not pila_vacia(pila_5): m = desapilar(pila_5) while not pila_vacia(pila_7): y = desapilar(pila_7) if (m == y): print('El personaje ' + str(m) + ' se encuentra en ambos episodios') apilar(pila_aux, y) while (not pila_vacia(pila_aux)): y = desapilar(pila_aux) apilar(pila_7, y)
def invertiir(pila): cola = Cola() while not pila_vacia(pila): arribo(cola, desapilar(pila)) while not cola_vacia(cola): apilar(pila, atencion(cola)) print('Pila invertida: ') barrido_pila(pila)
def pila_par(pila): paux = Pila() aux = 0 while not pila_vacia(pila): aux = desapilar(pila) if aux % 2 == 0: apilar(paux, aux) while not pila_vacia(paux): apilar(pila, desapilar(paux)) print('La pila con numeros pares es: ') barrido_pila(pila)
def ordenar_pila(): pila = Pila() pila_auxiliar = Pila() while not pila_vacia(pila): dato = random.randint(1, 50) if not pila_vacia(pila): while not pila_vacia(pila) and cima(pila) >= dato: apilar(pila_auxiliar, desapilar(pila)) apilar(pila, dato) while not pila_vacia(pila_auxiliar): apilar(pila, desapilar(pila_auxiliar)) barrido_pila(pila)
def fibonacci(n): pila = Pila() apilar(pila, 0) if n == 1: apilar(pila, 1) elif n > 1: apilar(pila, 1) while tamanio_pila(pila) <= n: d1 = desapilar(pila) d2 = cima(pila) s = d1 + d2 apilar(pila, d1) apilar(pila, s) barrido_pila(pila)
def objetos(): pila = Pila() objetos = [ 'computadora', 'vaso', 'mesa', 'silla', ' helado', ' canasta', 'piza', 'tv' ] for i in range(0, len(objetos)): pes = random.randint(1, 8) apilar(pila, [pes, objetos[i]]) print('La pila de objetos(en kg.) es : ') barrido_pila(pila) pila = ordenar(pila) print('La pila de objetos ordenados por peso es:') barrido_pila(pila)
def marvel(): pila = Pila() pila1 = Pila() pila2 = Pila() personaje = [ 'Iron Man', 'Heimdall', 'J.A.R.V.I.S', 'Doctor Strange', 'Groot', 'Thor Odinson', 'Rocket Raccoon', 'Black Widow' ] apariciones = [7, 4, 5, 1, 2, 5, 2, 5] for i in range(0, len(personaje)): apilar(pila, [personaje[i], apariciones[i]]) print('Pila de personajes y sus apariciones en Marvel') barrido_pila(pila) while not pila_vacia(pila): dato = desapilar(pila) if dato[0] == 'Black Widow': print( str(dato[0]) + ' participo en ' + str(dato[1]) + ' peliculas') if dato[1] >= 5: print('Personaje que articipo en 5 o mas peliculas: ' + str([dato[0], dato[1]])) cad = dato[0] if cad[0] == 'C' or cad[0] == 'D' or cad[0] == 'G': print('Personajes que empiezan con la letra C, D o G: ' + dato[0]) apilar(pila1, dato) barrido_pila(pila1) rr, gt = 1, 1 while not pila_vacia(pila1): m = desapilar(pila1) if m[0] == 'Rocket Raccoon': print('Rocket Raccoon se encuentra en la posicion', rr) else: rr += 1 apilar(pila2, m) while not pila_vacia(pila2): y = desapilar(pila2) if y[0] == 'Groot': print('Groot se encuentra en la posicion', gt) else: gt += 1
def robot(): pila = Pila() pila_aux = Pila() movimientos = [ 'norte', 'sur', 'este', 'oeste', 'noreste', 'sureste', 'noroeste', 'suroeste' ] for i in range(1, random.randint(0, 20)): apilar(pila, random.choice(movimientos)) print('Los pasos realizados por el robot son:') barrido_pila(pila) while not pila_vacia(pila): m = desapilar(pila) if m == 'norte': apilar(pila_aux, 'sur') if m == 'sur': apilar(pila_aux, 'norte') if m == 'este': apilar(pila_aux, 'oeste') if m == 'oeste': apilar(pila_aux, 'este') if m == 'norte': apilar(pila_aux, 'sur') if m == 'noreste': apilar(pila_aux, 'suroeste') if m == 'noroeste': apilar(pila_aux, 'sureste') if m == 'sureste': apilar(pila_aux, 'noroeste') if m == 'suroeste': apilar(pila_aux, 'noreste') while not pila_vacia(pila_aux): apilar(pila, desapilar(pila_aux)) print('Pasos en reversa para volver a punto de partida:') barrido_pila(pila) print('El robot realiza', tamanio_pila(pila), 'movimientos en ida') print('El robot realiza', tamanio_pila(pila), 'movimientos en vuelta') print('El robot realiza', tamanio_pila(pila) * 2, 'movimientos en total')
def insertar_atenea(): pila = Pila() pila_dioses = [ 'Hades', 'Artemisa', 'Apolo', 'Zeus', 'Ares', 'Hebe', 'Heracles', 'Dionisio' ] pila_aux = Pila() pos = 2 for i in range(0, 9): apilar(pila, pila_dioses[i]) print('Pila de dioses griegos: ') barrido_pila(pila) if tamanio_pila(pila) > (pos + 1): i = 0 while i < pos: m = desapilar(pila) apilar(pila_aux, m) i += 1 m = apilar(pila, 'Atenea') while not pila_vacia(pila_aux): apilar(pila, desapilar(pila_aux)) barrido_pila(pila) print('Atenea se inserto en la posicion ', pos)
def naipes(p, pila_basto, pila_copa, pila_espada, pila_oro, cartas): for i in range(1, 40): n = random.randint(1, 13) cartas = random.choice(cartas) apilar(p, [n, cartas]) while not pila_vacia(p): aux = desapilar(p) if aux[1] == "Oro": apilar(pila_oro, aux) if aux[1] == "Espada": apilar(pila_espada, aux) if aux[1] == "Basto": apilar(pila_basto, aux) if aux[1] == "Copa": apilar(pila_copa, aux) barrido_pila(pila_oro) print("Mazo de Espada: ") barrido_pila(pila_espada) print("Mazo de Basto: ") barrido_pila(pila_basto) print("Mazo de Copa: ") barrido_pila(pila_copa) print("Mazo de Oro: ")
def invertir_pila(pila): pila_auxiliar = Pila() while not pila_vacia(pila): apilar(pila_auxiliar, desapilar(pila)) print('La pila invertida es: ') barrido_pila(pila_auxiliar)
from tda_pila import Pila, pilaint, pilastring, barrido_pila, pila_vacia, apilar, desapilar, cima, tamanio_pila, ordenar import random pila = Pila() p = Pila() pila_n = Pila() pilaint(pila_n, 5) print('Pila de numeros enteros') barrido_pila(pila_n) print('') pila_car = Pila() pilastring(pila_car, 5) print('Pila de caracteres') barrido_pila(pila_car) print('') #1 def cont_ocurrencias(pila, oc): c = 0 aux = 0 pila_auxiliar = Pila() while not pila_vacia(pila): aux = desapilar(pila) if oc == aux: c += 1 apilar(pila_auxiliar, aux) while not pila_vacia(pila_auxiliar):