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
Пример #2
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
Пример #3
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)
Пример #4
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)
Пример #5
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'")