def camino_escalas(grafo,aeropuertos_de_ciudades,origen,destino): """ Imprime el camino con menos escalas entre una ciudad origen y una ciudad destino. """ caminos = [] for aerop_origen in aeropuertos_de_ciudades[origen]: padres,orden = repo.bfs(grafo,aerop_origen) for aerop_destino in aeropuertos_de_ciudades[destino]: camino = repo.reconstruir_camino(aerop_origen,aerop_destino,padres,None) if aerop_destino not in orden: continue caminos.append((camino,orden[aerop_destino])) imprimir_camino(menor_condicion(caminos)) return caminos
def camino_mas(grafo,aeropuertos_de_ciudades,modo,origen,destino): """ Imprime el camino más rápido/barato desde una ciudad origen a una ciudad destino. """ if modo == "barato": parametro = 0 else: parametro = 1 caminos = [] for aerop_origen in aeropuertos_de_ciudades[origen]: for aerop_destino in aeropuertos_de_ciudades[destino]: padre,peso = repo.camino_minimo(grafo,aerop_origen,parametro,aerop_destino) camino = repo.reconstruir_camino(aerop_origen,aerop_destino,padre,peso) #Camino es la tupla (camino,peso) if camino: caminos.append(camino) camino_minimo = menor_condicion(caminos) imprimir_camino(camino_minimo) return camino_minimo