Ejemplo n.º 1
0
def ordenado_automatico():
    c = Cola()
    c_aux = Cola()
    aux = 0
    elemento = int(input("Ingrese el elemento (-100 para no cargar mas): "))
    while (elemento != -100):
        if cola_llena(c):
            print("No hay mas espacio")
        else:
            if cola_vacia(c):
                arribo(c, elemento)
            else:
                aux = atencion(c)
                if elemento <= aux:
                    while not cola_vacia(c):
                        arribo(c_aux, atencion(c))
                    arribo(c, elemento)
                    arribo(c, aux)
                else:
                    while elemento > aux and not cola_vacia(c):
                        arribo(c_aux, aux)
                        aux = atencion(c)
                    if cola_vacia(c):
                        arribo(c_aux, aux)
                        arribo(c_aux, elemento)
                    else:
                        arribo(c_aux, elemento)
                        arribo(c_aux, aux)
                    while not cola_vacia(c):
                        arribo(c_aux, atencion(c))
                while not cola_vacia(c_aux):
                    arribo(c, atencion(c_aux))
            elemento = int(
                input("Ingrese el elemento (-100 para no cargar mas): "))
    barrido_cola(c)
Ejemplo n.º 2
0
def caracteres(c):
    c_digitos = Cola()
    c_otros = Cola()
    c_aux = Cola()
    contador = 0
    while not cola_vacia(c):
        aux = atencion(c)
        aux2 = ord(aux)
        if aux2 in range(48, 58):
            arribo(c_digitos, aux)
        else:
            arribo(c_otros, aux)
    while not cola_vacia(c_otros):
        aux = atencion(c_otros)
        aux2 = ord(aux)
        if aux2 in range(65, 91) or aux2 in range(97, 123):
            contador += 1
        arribo(c_aux, aux)
    while not cola_vacia(c_aux):
        arribo(c_otros, atencion(c_aux))
    print("Cola de digitos: ")
    barrido_cola(c_digitos)
    print("Cola de otros caracteres: ")
    barrido_cola(c_otros)
    print("Cantidad de letras en la cola de otros caracteres: ", contador)
Ejemplo n.º 3
0
 def ordenado_automatico():
     c = Cola()
     c_aux = Cola()
     aux = 0
     elemento = generar_hora_aleatoria()
     while not cola_llena(c):
         if cola_llena(c):
             print("No hay mas espacio")
         else:
             if cola_vacia(c):
                 arribo(c, elemento)
             else:
                 aux = atencion(c)
                 if elemento <= aux:
                     while not cola_vacia(c):
                         arribo(c_aux, atencion(c))
                     arribo(c, elemento)
                     arribo(c, aux)
                 else:
                     while elemento > aux and not cola_vacia(c):
                         arribo(c_aux, aux)
                         aux = atencion(c)
                     if cola_vacia(c):
                         arribo(c_aux, aux)
                         arribo(c_aux, elemento)
                     else:
                         arribo(c_aux, elemento)
                         arribo(c_aux, aux)
                     while not cola_vacia(c):
                         arribo(c_aux, atencion(c))
                 while not cola_vacia(c_aux):
                     arribo(c, atencion(c_aux))
             elemento = generar_hora_aleatoria()
     return c
Ejemplo n.º 4
0
def simulacion_cola_ejecucion():
    cola_procesos = Cola()
    cola_tiempo = Cola()
    proceso = input("Ingrese el id_proceso: ")
    tiempo = float(input("Ingrese el tiempo de ejecucion: "))
    # carga de procesos con sus tiempos
    while tiempo > -1:
        arribo(cola_procesos, proceso)
        arribo(cola_tiempo, tiempo)
        proceso = input("Ingrese el id_proceso: ")
        tiempo = float(
            input(
                "Ingrese el tiempo de ejecucion (Ingrese -1 para dejar de cargar): "
            ))
    while not cola_vacia(cola_procesos):
        proceso = atencion(cola_procesos)
        tiempo = atencion(cola_tiempo)
        if tiempo > 4.5:
            aux_tiempo = tiempo - 4.5
            print("Atendiendo el proceso: ", proceso, "...")
            time.sleep(4.5)
            print(
                "Se le agoto el quantum asignado por el procesador. Se coloca el proceso al final de la cola"
            )
            arribo(cola_procesos, proceso)
            arribo(cola_tiempo, aux_tiempo)
            control = input("Desea cargar mas procesos?: si/no: ")
            control.lower()
            if control == 'si':
                while tiempo > -1:
                    proceso = input("Ingrese el id_proceso: ")
                    tiempo = float(input("Ingrese el tiempo de ejecucion: "))
                    arribo(cola_procesos, proceso)
                    arribo(cola_tiempo, tiempo)
                    proceso = input("Ingrese el id_proceso: ")
                    tiempo = float(
                        input(
                            "Ingrese el tiempo de ejecucion *(Ingrese -1 para dejar de cargar)*: "
                        ))
        else:
            print("Atendiendo el proceso: ", proceso, "...")
            time.sleep(tiempo)
            print("El proceso se atendio por completo...")
            control = input("Desea cargar mas procesos?: si/no: ")
            control.lower()
            if control == 'si':
                while tiempo > -1:
                    proceso = input("Ingrese el id_proceso: ")
                    tiempo = float(input("Ingrese el tiempo de ejecucion: "))
                    arribo(cola_procesos, proceso)
                    arribo(cola_tiempo, tiempo)
                    proceso = input("Ingrese el id_proceso: ")
                    tiempo = float(
                        input(
                            "Ingrese el tiempo de ejecucion *(Ingrese -1 para dejar de cargar)*: "
                        ))
    print("No hay mas procesos! ")
Ejemplo n.º 5
0
def cabinas_peaje():
    c1 = Cola()
    c2 = Cola()
    c3 = Cola()
    peajes = [c1, c2, c3]
    vehiculos = ['auto', 'camioneta', 'camion', 'colectivo']
    valor_auto = 35
    valor_camioneta = 43
    valor_camion = 61
    valor_colectivo = 58
    i = 0
    while i < 30:
        dato = random.choice(vehiculos)
        caux = random.choice(peajes)
        arribo(caux, dato)
        i += 1
    ac1 = 0
    ac2 = 0
    ac3 = 0
    while not cola_vacia(c1) or not cola_vacia(c2) or not cola_vacia(c3):
        if not cola_vacia(c1):
            aux = atencion(c1)
            if aux == 'auto':
                ac1 = ac1 + valor_auto
            elif aux == 'camioneta':
                ac1 = ac1 + valor_camioneta
            elif aux == 'camion':
                ac1 = ac1 + valor_camion
            else:
                ac1 = ac1 + valor_colectivo
        if not cola_vacia(c2):
            aux = atencion(c2)
            if aux == 'auto':
                ac2 = ac2 + valor_auto
            elif aux == 'camioneta':
                ac2 = ac2 + valor_camioneta
            elif aux == 'camion':
                ac2 = ac2 + valor_camion
            else:
                ac2 = ac2 + valor_colectivo
        if not cola_vacia(c3):
            aux = atencion(c3)
            if aux == 'auto':
                ac3 = ac3 + valor_auto
            elif aux == 'camioneta':
                ac3 = ac3 + valor_camioneta
            elif aux == 'camion':
                ac3 = ac3 + valor_camion
            else:
                ac3 = ac3 + valor_colectivo
    if (ac1 > ac2) and (ac1 > ac3):
        print("La primer cabina recaudo mas")
    elif (ac2 > ac1) and (ac2 > ac3):
        print("La segunda cabina recaudo mas")
    else:
        print("La tercer cabina recaudo mas")
Ejemplo n.º 6
0
def noVocales(cola):
    colaaux = Cola()
    colaaux2 = Cola()
    while (not cola_vacia(cola)):
        a = atencion(cola)
        if ((a == "a") or (a == "i") or (a == "e") or (a == "o")
                or (a == "u")):
            arribo(colaaux, a)
        else:
            arribo(colaaux2, a)
    print(colaaux2.datos)
Ejemplo n.º 7
0
def noVocales2(cola):
    colaaux = Cola()
    colaaux2 = Cola()
    while (not cola_vacia(cola)):
        a = ord(atencion(cola))
        print(a)
        if ((a == 97) or (a == 101) or (a == 105) or (a == 111) or (a == 117)):
            arribo(colaaux, chr(a))
        else:
            arribo(colaaux2, chr(a))
    print(colaaux2.datos)
Ejemplo n.º 8
0
def buffer(cadena):
    cola_buffer_out = Cola()
    cola_buffer_in = Cola()
    aux = cadena.encode()
    cadena = ''
    for i in range(0, len(aux)):
        arribo(cola_buffer_out, aux[i])
    while not cola_vacia(cola_buffer_out):
        print("Enviando...")
        arribo(cola_buffer_in, atencion(cola_buffer_out))
        arribo(cola_buffer_in, atencion(cola_buffer_out))
    while not cola_vacia(cola_buffer_in):
        aux = atencion(cola_buffer_in)
        cadena = cadena + chr(aux)
    print(cadena)
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
def fibonacci(n):
    c = Cola()
    c_aux = Cola()
    arribo(c, 1)
    arribo(c, 0)
    for i in range(1, n):
        aux1 = atencion(c)
        aux2 = atencion(c)
        sum = aux1 + aux2
        while not cola_vacia(c):
            arribo(c_aux, atencion(c))
        arribo(c, sum)
        arribo(c, aux1)
        arribo(c, aux2)
        while not cola_vacia(c_aux):
            arribo(c, atencion(c_aux))
    barrido_cola(c)
Ejemplo n.º 11
0
 def generar_despegue_aleatorio():
     c_aux = Cola()
     cola = Cola()
     c_aux = ordenado_automatico()
     for i in range(0, 20):
         lista_despegue = [
             'nombre_empresa', 'hora_salida', 'hora_llegada',
             'aeropuerto_origen', 'aeropuerto_llegada', 'tipo'
         ]
         lista_despegue[0] = random.choice(lista_aerolineas)
         lista_despegue[1] = atencion(c_aux)
         lista_despegue[2] = generar_hora_aleatoria()
         lista_despegue[3] = random.choice(lista_aeropuertos)
         lista_despegue[4] = random.choice(lista_aeropuertos)
         lista_despegue[5] = random.choice(lista_tipo)
         arribo(cola, lista_despegue)
     return cola
Ejemplo n.º 12
0
def eliminar_no_primos(c):
    c_aux = Cola()
    while not cola_vacia(c):
        valor = atencion(c)
        if identificar_primos(valor):
            print("Es primo")
            arribo(c_aux, valor)
    while not cola_vacia(c_aux):
        arribo(c, atencion(c_aux))
    print("Barrido cola aux")
    barrido_cola(c)
Ejemplo n.º 13
0
def combinar_colas(c1, c2):
    c = Cola()
    aux1 = atencion(c1)
    aux2 = atencion(c2)
    while not cola_vacia(c1) and not cola_vacia(c2):
        if aux1 <= aux2:
            arribo(c, aux1)
            aux1 = atencion(c1)
        else:
            arribo(c, aux2)
            aux2 = atencion(c2)
    barrido_cola(c)
Ejemplo n.º 14
0
def vocales(c):
    c_aux = Cola()
    while not cola_vacia(c):
        aux = atencion(c)
        aux.lower()
        if (aux == 'a') or (aux == 'e') or (aux == 'i') or (aux == 'o') or (
                aux == 'u'):
            print('Se elimino una vocal')
        else:
            arribo(c_aux, aux)
    c = c_aux
    barrido_cola(c)
Ejemplo n.º 15
0
def eliminar_lugar(c, lugar):
    c_aux = Cola()
    if lugar <= c.tamanio:
        for i in range(2, lugar):
            arribo(c_aux, atencion(c))
        aux = atencion(c)
        while not cola_vacia(c):
            arribo(c_aux, atencion(c))
        print('')
        barrido_cola(c_aux)
        print('El elemento quiitado fue: ', aux)
    else:
        print('La posicion dada no se encuentra en la cola...')
Ejemplo n.º 16
0
def sinPrimos(cola):
    colaaux = Cola()
    while (not cola_vacia(cola)):
        control = False
        a = atencion(cola)
        print(a)
        for e in range(2, a):
            print(a, "%", e)
            resto = a % e
            print(resto)
        if (resto == 0):
            control = True
        if control == True:
            arribo(colaaux, a)
    print(colaaux.datos)
Ejemplo n.º 17
0
 def generar_aterrizaje_aleatorio():
     cola = Cola()
     for i in range(0, 20):
         lista_aterrizaje = [
             'nombre_empresa', 'hora_salida', 'hora_llegada',
             'aeropuerto_origen', 'aeropuerto_llegada', 'tipo'
         ]
         lista_aterrizaje[0] = random.choice(lista_aerolineas)
         lista_aterrizaje[1] = generar_hora_aleatoria()
         lista_aterrizaje[5] = random.choice(lista_tipo)
         lista_aterrizaje[2] = generar_hora_aleatoria()
         lista_aterrizaje[3] = random.choice(lista_aeropuertos)
         lista_aterrizaje[4] = random.choice(lista_aeropuertos)
         arribo(cola, lista_aterrizaje)
     return cola
Ejemplo n.º 18
0
def palindromo(cadena):
    cadena.lower()
    aux = len(cadena)
    c = Cola()
    p = Pila()
    cadena_aux = ''
    for i in range(0, aux):
        arribo(c, cadena[i])
    while not cola_vacia(c):
        apilar(p, atencion(c))
    while not pila_vacia(p):
        cadena_aux = cadena_aux + desapilar(p)
    if cadena == cadena_aux:
        print("la palabra es un palindromo")
    else:
        print("no es un palindromo")
def barrido_amplitud(grafo, vertice):
    """Barrido en amplitud del grafo."""
    cola = Cola()
    while (vertice is not None):
        if (not vertice.visitado):
            vertice.visitado = True
            arribo(cola, vertice)
            while (not cola_vacia(cola)):
                nodo = atencion(cola)
                print(nodo.info)
                adyacentes = nodo.adyacentes.inicio
                while (adyacentes is not None):
                    adyacente = buscar_vertice(grafo, adyacentes.destino)
                    if (not adyacente.visitado):
                        adyacente.visitado = True
                        arribo(cola, adyacente)
                    adyacentes = adyacentes.sig
        vertice = vertice.sig
Ejemplo n.º 20
0
def barrido_amplitud(grafo, vertice, campo=0):
    marcar_no_visitado(grafo)
    cola = Cola()
    while vertice is not None:
        if not vertice.visitado:
            vertice.visitado = True
            arribo(cola, vertice)
            while not cola_vacia(cola):
                nodo = atencion(cola)
                print(nodo.info)
                adyacente = nodo.adyacentes.inicio
                while adyacente is not None:
                    nodo_aux = buscar_vertice(grafo, adyacente.destino[campo],
                                              campo)
                    if not nodo_aux.visitado:
                        nodo_aux.visitado = True
                        arribo(cola, nodo_aux)
                    adyacente = adyacente.sig
        vertice = vertice.sig
Ejemplo n.º 21
0
 def barrido_amplitud(self, ver_origen):
     """Barrido en amplitud del grafo."""
     cola = Cola()
     while (ver_origen < self.tamanio()):
         vertice = self.inicio.obtener_elemento(ver_origen)
         if (not vertice['visitado']):
             vertice['visitado'] = True
             cola.arribo(vertice)
             while (not cola.cola_vacia()):
                 nodo = cola.atencion()
                 print(nodo['info'], nodo['data'])
                 aristas = 0
                 while (aristas < nodo['aristas'].tamanio()):
                     adyacente = nodo['aristas'].obtener_elemento(aristas)
                     pos_vertice = self.buscar_vertice(adyacente['destino'])
                     nuevo_vertice = self.inicio.obtener_elemento(
                         pos_vertice)
                     if (not nuevo_vertice['visitado']):
                         nuevo_vertice['visitado'] = True
                         cola.arribo(nuevo_vertice)
                     aristas += 1
         ver_origen += 1
Ejemplo n.º 22
0
from tda_cola import Cola, cola_llena, cola_vacia, arribo, atencion, tamanio


c = Cola()
caux = Cola()

while not cola_llena(c):
    dato = int(input("ingrese un número"))
    arribo(c, dato)

while not cola_vacia(c):
    x = atencion(c)
    if(x % 2 == 0):
        arribo(caux, x)

while not cola_vacia(caux):
    x = atencion(caux)
    print(x)
Ejemplo n.º 23
0
def turnos():
    c_turnos = Cola()
    cola_1 = Cola()
    cola_2 = Cola()
    c_aux = Cola()
    cA, cC, cF, cB, cD, cE = 0, 0, 0, 0, 0, 0
    # carga de turnos
    for i in range(0, 1000):
        lista = ['A', 'B', 'C', 'D', 'E', 'F']
        cadena = random.choice(lista)
        cadena = cadena + random.choice(string.digits)
        cadena = cadena + random.choice(string.digits)
        cadena = cadena + random.choice(string.digits)
        arribo(c_turnos, cadena)
    while not cola_vacia(c_turnos):
        turno = atencion(c_turnos)
        if turno[0] == 'A' or turno[0] == 'C' or turno[0] == 'F':
            arribo(cola_1, turno)
        else:
            arribo(cola_2, turno)
    tc1 = tamanio(cola_1)
    tc2 = tamanio(cola_2)
    print("Cola con turnos 'A'; 'C'; 'F'")
    barrido_cola(cola_1)
    print("Cola con turnos 'B'; 'D'; 'E'")
    barrido_cola(cola_2)
    if tc1 > tc2:
        print("La cola con turnos 'A'; 'C'; 'F'; tiene mas elementos")
        while not cola_vacia(cola_1):
            aux = atencion(cola_1)
            if aux[0] == 'A':
                cA += 1
            elif aux[0] == 'C':
                cC += 1
            else:
                cF += 1
            arribo(c_aux, aux)
        while not cola_vacia(c_aux):
            arribo(cola_1, atencion(c_aux))
        if cA > cC and cA > cF:
            print("Hay mas turnos 'A'")
        elif cC > cA and cC > cF:
            print("Hay mas turnos 'C'")
        else:
            print("Hay mas turnos 'F'")
    else:
        print("La cola con turnos 'B'; 'D'; 'E'; tiene mas elementos")
        while not cola_vacia(cola_2):
            aux = atencion(cola_2)
            if aux[0] == 'B':
                cB += 1
            elif aux[0] == 'D':
                cD += 1
            else:
                cE += 1
            arribo(c_aux, aux)
        while not cola_vacia(c_aux):
            arribo(cola_1, atencion(c_aux))
        if cB > cD and cB > cE:
            print("Hay mas turnos 'B'")
        elif cD > cB and cD > cE:
            print("Hay mas turnos 'D'")
        else:
            print("Hay mas turnos 'E'")
Ejemplo n.º 24
0
from tda_cola import Cola
from random import randint
cola1 = Cola()
cola2 = Cola()
cola_final = Cola()

lista1 = [1, 6, 10, 25, 34]
lista2 = [7, 11, 16, 21, 32]

print ('Para cola 1, agregamos: ')
for i in (lista1):
     cola1.arribo(i)
     print (i)


print ()

print ('Para cola 2, agregamos: ')
for i in (lista2):
     cola2.arribo(i)
     print (i)

print()

while (not cola1.cola_vacia() and not cola2.cola_vacia()):
 ### comparamos elemento a elemento desde el frente de cada cola con la otra
     if (cola1.en_frente() < cola2.en_frente()):
         cola_final.arribo(cola1.atencion())
     else:
         cola_final.arribo(cola2.atencion())
 ####si una de las dos colas esta vacia, cargaremos el elemento restante de la otra cola ,a la cola final
Ejemplo n.º 25
0
from tda_cola import Cola
personaje = Cola()

class persona(object):
    nombre_personaje, nombre_super, genero = '', '', ''

    def __init__(self, nombre_personaje, nombre_super, genero):
            self.nombre_personaje = nombre_personaje
            self.nombre_super = nombre_super
            self.genero = genero
          

    def __str__(self):
          return self.nombre_personaje+': ' + self.nombre_super +'. '+ ' Genero: '+ self.genero

dato = persona ('tony stark', 'iron man', 'm') 
personaje.arribo(dato)
dato = persona ('steve rogers', 'capitan america', 'm')
personaje.arribo(dato)
dato = persona ('thor odinson', 'thor.', ' m')
personaje.arribo(dato)
dato = persona ('sam wilson', 'falcon ', 'm')
personaje.arribo(dato)
dato = persona ('carol danvers', 'capitana marvel', 'f')
personaje.arribo(dato)
dato = persona ('nati romanoff', 'black widow', 'f')
personaje.arribo(dato)
dato = persona ('wanda maximoff', 'bruja escarlata', 'f')
personaje.arribo(dato)
dato = persona ('stephen strange', 'doctor strange', 'm')
personaje.arribo(dato)
Ejemplo n.º 26
0
from tda_cola import Cola, carga_automatica, carga_automatica_letras, barrido_cola, arribo, atencion, cola_vacia, carga_automatica_caracteres
from cola_unit import vocales, invertir, palindromo, eliminar_no_primos, invertir_pila
from cola_unit import combinar_colas, contar_ocurrencias, eliminar_lugar, ordenado_automatico
from cola_unit import rango, fibonacci, caracteres, cabinas_peaje, valores_enteros
from cola_unit import simulacion_cola_ejecucion, turnos, buffer, aeropuerto

import tda_pila
import random

p = tda_pila.Pila()
c_letras = Cola()
c = Cola()
cola1 = Cola()
carga_automatica_letras(c_letras)
carga_automatica(c)
# carga_automatica(cola1)
tda_pila.carga_automatica(p)

for i in range(0, 14):
    dato = random.randint(0, 400)
    arribo(cola1, dato)
"""EJERCICIO 11"""
c1 = Cola()
c2 = Cola()
for i in range(0, 9):
    arribo(c1, random.randint(0, 50))
    arribo(c2, random.randint(0, 50))


def ordenar_cola(c):
    i = 0
Ejemplo n.º 27
0
def aeropuerto():
    lista_aerolineas = [
        "Iberia", "Lufthansa", "Eurowings", "Air France",
        "Aerolineas Argentinas", "Avianca", "American Airlines",
        "Qatar Airways"
    ]
    lista_tipo = ["Carga", "Pasajeros", "Negocios"]
    lista_aeropuertos = [
        "Aeropuerto A", "Aeropuerto B", "Aeropuerto C", "Aeropuerto D",
        "Aeropuerto E"
    ]
    lista_tiempo_aterrizaje = [7, 10, 5]
    lista_tiempo_despegue = [9, 5, 3]
    lista_despegue = [
        'nombre_empresa', 'hora_salida', 'hora_llegada', 'aeropuerto_origen',
        'aeropuerto_llegada', 'tipo'
    ]
    lista_aterrizaje = [
        'nombre_empresa', 'hora_salida', 'hora_llegada', 'aeropuerto_origen',
        'aeropuerto_llegada', 'tipo'
    ]
    cola_despegue = Cola()
    cola_aterrizaje = Cola()

    # pis1, pis2, pis3 = False, False, False

    def ordenado_automatico():
        c = Cola()
        c_aux = Cola()
        aux = 0
        elemento = generar_hora_aleatoria()
        while not cola_llena(c):
            if cola_llena(c):
                print("No hay mas espacio")
            else:
                if cola_vacia(c):
                    arribo(c, elemento)
                else:
                    aux = atencion(c)
                    if elemento <= aux:
                        while not cola_vacia(c):
                            arribo(c_aux, atencion(c))
                        arribo(c, elemento)
                        arribo(c, aux)
                    else:
                        while elemento > aux and not cola_vacia(c):
                            arribo(c_aux, aux)
                            aux = atencion(c)
                        if cola_vacia(c):
                            arribo(c_aux, aux)
                            arribo(c_aux, elemento)
                        else:
                            arribo(c_aux, elemento)
                            arribo(c_aux, aux)
                        while not cola_vacia(c):
                            arribo(c_aux, atencion(c))
                    while not cola_vacia(c_aux):
                        arribo(c, atencion(c_aux))
                elemento = generar_hora_aleatoria()
        return c

    def generar_despegue_aleatorio():
        c_aux = Cola()
        cola = Cola()
        c_aux = ordenado_automatico()
        for i in range(0, 20):
            lista_despegue = [
                'nombre_empresa', 'hora_salida', 'hora_llegada',
                'aeropuerto_origen', 'aeropuerto_llegada', 'tipo'
            ]
            lista_despegue[0] = random.choice(lista_aerolineas)
            lista_despegue[1] = atencion(c_aux)
            lista_despegue[2] = generar_hora_aleatoria()
            lista_despegue[3] = random.choice(lista_aeropuertos)
            lista_despegue[4] = random.choice(lista_aeropuertos)
            lista_despegue[5] = random.choice(lista_tipo)
            arribo(cola, lista_despegue)
        return cola

    def generar_aterrizaje_aleatorio():
        cola = Cola()
        for i in range(0, 20):
            lista_aterrizaje = [
                'nombre_empresa', 'hora_salida', 'hora_llegada',
                'aeropuerto_origen', 'aeropuerto_llegada', 'tipo'
            ]
            lista_aterrizaje[0] = random.choice(lista_aerolineas)
            lista_aterrizaje[1] = generar_hora_aleatoria()
            lista_aterrizaje[5] = random.choice(lista_tipo)
            lista_aterrizaje[2] = generar_hora_aleatoria()
            lista_aterrizaje[3] = random.choice(lista_aeropuertos)
            lista_aterrizaje[4] = random.choice(lista_aeropuertos)
            arribo(cola, lista_aterrizaje)
        return cola

    # Carga cola_despegue
    cola_despegue = generar_despegue_aleatorio()
    # Carga de cola_aterrizaje
    cola_aterrizaje = generar_aterrizaje_aleatorio()

    while not cola_vacia(cola_despegue):
        hora_sistema = time.strftime("%H:%M")
        dato = frente(cola_despegue)
        if dato[1] < hora_sistema or cola_vacia(cola_aterrizaje):
            dato = atencion(cola_despegue)
            aux = input(
                "El vuelo  va a despegar o va a ser reprogramado? (d = despegar ; r = reprogramar)"
            )
            c_aux = Cola()
            if aux == "d" or aux == "r":
                if aux == 'd':
                    print("El vuelo de ", dato[5], " de la empresa ", dato[0],
                          " esta despegando...")
                    time.sleep(lista_tiempo_despegue[lista_tipo.index(
                        dato[5])])
                elif aux == 'r':
                    while not cola_vacia(cola_despegue):
                        aux_cola = atencion(cola_despegue)
                        arribo(c_aux, aux_cola)
                    aux = input("Ingrese la hora de salida: ")
                    # Control para que el horario se mas tarde que el ultimo
                    while aux < aux_cola[1]:
                        print("El horario tiene que ser mas tarde que ",
                              aux_cola[1])
                        aux = input("Ingrese la hora de salida: ")
                    while not cola_vacia(c_aux):
                        arribo(cola_despegue, atencion(c_aux))
                    dato[1] = aux
                    arribo(cola_despegue, dato)
                else:
                    while aux != 'd' or aux == 'r':
                        aux = input(
                            "Error ingrese d = despegar ; r = reprogramar")
                        aux.lower()
                    if aux == 'd' and aux == 'r':
                        if aux == 'd':
                            print("El vuelo de ", dato[5], " de la empresa ",
                                  dato[0], " esta despegando...")
                            time.sleep(lista_tiempo_despegue[lista_tipo.index(
                                dato[5])])
                        elif aux == 'r':
                            while not cola_vacia(cola_despegue):
                                aux_cola = atencion(cola_despegue)
                                arribo(c_aux, aux_cola)
                            aux = input("Ingrese la hora de salida: ")
                            # Control para que el horario se mas tarde que el ultimo
                            while aux < aux_cola[1]:
                                print(
                                    "El horario tiene que ser mas tarde que ",
                                    aux_cola[1])
                                aux = input("Ingrese la hora de salida: ")
                            dato[1] = aux
                            arribo(cola_despegue, dato)
            aux = input("Desea agregar otro vuelo? (si/no): ")
            if aux == 'si':
                aux = input(
                    "Va a ingresar un despegue o un aterrizaje: (despegue/aterrizaje): "
                )
                aux.lower()
                if aux == 'despegue':
                    lista_despegue[0] = input(
                        "Ingrese el nombre de la empresa: ")
                    c_aux = Cola()
                    aux_cola = ''
                    # Ciclo para obtener el ultimo valor de la cola
                    while not cola_vacia(cola_despegue):
                        aux_cola = atencion(cola_despegue)
                        arribo(c_aux, aux_cola)
                    aux = input("Ingrese la hora de salida: ")
                    # Control para que el horario se mas tarde que el ultimo
                    while aux < aux_cola[1]:
                        print("El horario tiene que ser mas tarde que ",
                              aux_cola[1])
                        aux = input("Ingrese la hora de salida: ")
                    lista_despegue[1] = aux
                    # volver a poner todos los valores en la cola_despegue
                    while not cola_vacia(c_aux):
                        arribo(cola_despegue, atencion(c_aux))
                    lista_despegue[2] = input("Ingrese la hora llegada: ")
                    lista_despegue[3] = input(
                        "Ingrese el aeropuerto de origen: ")
                    lista_despegue[4] = input(
                        "Ingrese el aeropuerto de destino: ")
                    aux = int(
                        input(
                            "Ingrese el tipo de vuelo: (0 = carga ; 1 = pasajeros ; 2 = negocios) "
                        ))
                    lista_despegue[5] = lista_tipo[aux]
                    arribo(cola_despegue, lista_despegue)
                elif aux == 'aterrizaje':
                    lista_aterrizaje[0] = input(
                        "Ingrese el nombre de la empresa: ")
                    lista_aterrizaje[1] = input("Ingrese la hora de salida: ")
                    lista_aterrizaje[2] = input("Ingrese la hora llegada: ")
                    lista_aterrizaje[3] = input(
                        "Ingrese el aeropuerto de origen: ")
                    lista_aterrizaje[4] = input(
                        "Ingrese el aeropuerto de destino: ")
                    aux = int(
                        input(
                            "Ingrese el tipo de vuelo: (0 = carga ; 1 = pasajeros ; 2 = negocios) "
                        ))
                    lista_aterrizaje[5] = lista_tipo[aux]
                    arribo(cola_aterrizaje, lista_aterrizaje)
        else:
            if not cola_vacia(cola_aterrizaje):
                dato = atencion(cola_aterrizaje)
                print("El vuelo de ", dato[5], " de la empresa ", dato[0],
                      " esta aterrizando...")
                time.sleep(lista_tiempo_aterrizaje[lista_tipo.index(dato[5])])
                aux = input("Desea agregar otro vuelo? (si/no): ")
                if aux == 'si':
                    aux = input(
                        "Va a ingresar un despegue o un aterrizaje: (despegue/aterrizaje): "
                    )
                    aux.lower()
                    if aux == 'despegue':
                        lista_despegue[0] = input(
                            "Ingrese el nombre de la empresa: ")
                        c_aux = Cola()
                        aux_cola = ''
                        # Ciclo para obtener el ultimo valor de la cola
                        while not cola_vacia(cola_despegue):
                            aux_cola = atencion(cola_despegue)
                            arribo(c_aux, aux_cola)
                        aux = input("Ingrese la hora de salida: ")
                        # Control para que el horario se mas tarde que el ultimo
                        while aux < aux_cola[1]:
                            print("El horario tiene que ser mas tarde que ",
                                  aux_cola[1])
                            aux = input("Ingrese la hora de salida: ")
                        lista_despegue[1] = aux
                        # volver a poner todos los valores en la cola_despegue
                        while not cola_vacia(c_aux):
                            arribo(cola_despegue, atencion(c_aux))
                        lista_despegue[2] = input("Ingrese la hora llegada: ")
                        lista_despegue[3] = input(
                            "Ingrese el aeropuerto de origen: ")
                        lista_despegue[4] = input(
                            "Ingrese el aeropuerto de destino: ")
                        aux = int(
                            input(
                                "Ingrese el tipo de vuelo: (0 = carga ; 1 = pasajeros ; 2 = negocios) "
                            ))
                        lista_despegue[5] = lista_tipo[aux]
                        arribo(cola_despegue, lista_despegue)
                    elif aux == 'aterrizaje':
                        lista_aterrizaje[0] = input(
                            "Ingrese el nombre de la empresa: ")
                        lista_aterrizaje[1] = input(
                            "Ingrese la hora de salida: ")
                        lista_aterrizaje[2] = input(
                            "Ingrese la hora llegada: ")
                        lista_aterrizaje[3] = input(
                            "Ingrese el aeropuerto de origen: ")
                        lista_aterrizaje[4] = input(
                            "Ingrese el aeropuerto de destino: ")
                        aux = int(
                            input(
                                "Ingrese el tipo de vuelo: (0 = carga ; 1 = pasajeros ; 2 = negocios) "
                            ))
                        lista_aterrizaje[5] = lista_tipo[aux]
                        arribo(cola_aterrizaje, lista_aterrizaje)