def ordenados(): p = Pila() p_aux = Pila() aux = 0 elemento = input("Ingrese el elemento (-100 para no cargar mas): ") int(elemento) while (elemento != -100): if pila_llena(p): print("No hay mas espacio") else: if pila_vacia(p): apilar(p, elemento) else: aux = desapilar(p) while elemento < aux and not pila_vacia(p): apilar(p_aux, aux) aux = desapilar(p) else: if elemento < aux: apilar(p, elemento) apilar(p, aux) else: apilar(p, aux) apilar(p, elemento) if not pila_vacia(p_aux): while not pila_vacia(p_aux): apilar(p, desapilar(p_aux)) elemento = input("Ingrese el elemento (-100 para no cargar mas): ") int(elemento) barrido(p)
def temperatura(): p = Pila() p_aux = Pila() sum = 0 c_encima = 0 c_debajo = 0 for i in range(0, 30): apilar(p, random.randint(15, 27)) max = desapilar(p) min = max apilar(p, max) while not pila_vacia(p): aux = desapilar(p) sum = sum + aux if aux < min: min = aux if aux > max: max = aux apilar(p_aux, aux) media = sum / 30 while not pila_vacia(p_aux): aux = desapilar(p_aux) if aux > media: c_encima += 1 elif aux < media: c_debajo += 1 apilar(p, aux) print("Valor maximo de temperatura: ", max) print("Valor minimo de temperatura: ", min) print("Promedio del total de los valores: ", media) print("Valores por encima de la media: ", c_encima) print("Valores por debajo de la media: ", c_debajo) print("Lista de los valores: ") barrido(p)
def cartas(): p = Pila() po = Pila() pb = Pila() pe = Pila() pc = Pila() palos = ['Oro', 'Basto', 'Copa', 'Espada'] while not pila_llena(p): num = random.randint(1, 13) palo = random.choice(palos) apilar(p, [num, palo]) while not pila_vacia(p): aux = desapilar(p) if aux[1] == "Basto": apilar(pb, aux) if aux[1] == "Copa": apilar(pc, aux) if aux[1] == "Oro": apilar(po, aux) if aux[1] == "Espada": apilar(pe, aux) print("Mazo de basto") barrido(pb) print("Mazo de copa") barrido(pc) print("Mazo de oro") barrido(po) print("Mazo de espada") barrido(pe) pe = ordenar_pila(pe) print("Mazo de espada ordenados") barrido(pe)
def invertir(p): pila_aux = Pila() print('Pila original: ') barrido(p) while not pila_vacia(p): apilar(pila_aux, desapilar(p)) print('Pila invertida: ') barrido(pila_aux)
def invertir_pila(p): c = Cola() barrido(p) while not pila_vacia(p): arribo(c, desapilar(p)) while not cola_vacia(c): apilar(p, atencion(c)) barrido(p)
def objetos_oficina(): objetos = [ "escritorio", "silla", "teclado", "mouse", "monitor", "gabinete" ] peso = [10.5, 5, 0.800, 0.400, 2.5, 5] pila_oficina = Pila() for i in range(0, len(objetos)): apilar(pila_oficina, [peso[i], objetos[i]]) pila_ordenada = ordenar_pila(pila_oficina) print('Pila ordenada') barrido(pila_ordenada)
def pila_pares(p): pila_aux = Pila() aux = 0 while not pila_vacia(p): aux = desapilar(p) if (aux % 2) == 0: apilar(pila_aux, aux) while not pila_vacia(pila_aux): apilar(p, desapilar(pila_aux)) print('Pila con pares: ') barrido(p)
def fibonacci(valor): p = Pila() p_aux = Pila() apilar(p, 0) apilar(p, 1) for i in range(1, valor): f1 = desapilar(p) f0 = desapilar(p) aux = f1 + f0 apilar(p, f0) apilar(p, f1) apilar(p, aux) print("Fibonacci de: ", valor) barrido(p)
def pares_impares(p): pila_pares = Pila() pila_impares = Pila() while not pila_vacia(p): aux = desapilar(p) if (aux % 2) == 0: apilar(pila_pares, aux) else: apilar(pila_impares, aux) print("Pila de pares: --INICIO--") barrido(pila_pares) print("Pila de pares: --FIN--") print("Pila de impares: --INICIO--") barrido(pila_impares) print("Pila de impares: --FIN--")
def restringir_valores(): p = Pila() p_aux = Pila() while not pila_llena(p): apilar(p, random.randint(0, 800)) print("Lista de valores: ") barrido(p) while not pila_vacia(p): aux = desapilar(p) if (aux % 2 == 0) or (aux % 3 == 0) or (aux % 5 == 0): apilar(p_aux, aux) while not pila_vacia(p_aux): apilar(p, desapilar(p_aux)) print("") print("Lista de valores que son multiplos de 2, 3 o 5") barrido(p)
def palabras(): serie_palabras = [ "Guitarra", "Fotocopia", "Roedor", "Fecha", "Batir", "Horno", "Compartimiento", "Amazona", "Tabaco" ] p = Pila() p_aux = Pila() for i in range(0, len(serie_palabras)): apilar(p, serie_palabras[i]) print("Palabras con mas de 7 caracteres") while not pila_vacia(p): aux = desapilar(p) if len(aux) > 7: print(aux) apilar(p_aux, aux) while not pila_vacia(p_aux): apilar(p, desapilar(p_aux)) print("") print("Lista de palabras") barrido(p)
def robot(): pila_robot = Pila() p_aux = Pila() direcciones = [ "norte", "sur", "este", "oeste", "noreste", "noroeste", "sureste", "suroeste" ] num_al = random.randint(5, 50) for i in range(1, num_al): apilar(pila_robot, random.choice(direcciones)) print("Ida") barrido(pila_robot) while not pila_vacia(pila_robot): aux = desapilar(pila_robot) if aux == "norte": apilar(p_aux, "sur") if aux == "sur": apilar(p_aux, "norte") if aux == "este": apilar(p_aux, "oeste") if aux == "oeste": apilar(p_aux, "este") if aux == "norte": apilar(p_aux, "sur") if aux == "noreste": apilar(p_aux, "suroeste") if aux == "noroeste": apilar(p_aux, "sureste") if aux == "sureste": apilar(p_aux, "noroeste") if aux == "suroeste": apilar(p_aux, "noreste") while not pila_vacia(p_aux): apilar(pila_robot, desapilar(p_aux)) print("") print("vuelta") barrido(pila_robot)