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
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
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)
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)
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'")