Я написал на C++ код, который находит кратчайший путь между двумя городами, связанными дорогами или рейсами. Города могут быть связаны с прямыми рейсами или косвенными. Пользователь может ввести рейсы, как это:Поиск соединений в 3 векторах строки
AAA AAG 300
AAA AAB 1
AAA AAG 298
AAB AAC 1
AAB AAG 297
AAC AAD 1
AAC AAG 296
AAD AAE 1
AAD AAG 295
AAE AAF 1
AAE AAG 294
AAF AAG 1
Где первая строка покидает город, второй является местом, а число время полета. хранить эти значения в 3-х векторах:
vector<string> leavingCities;
vector<string> destCities;
vector<int> flightTimes;
У меня есть проблемы с поиска непрямых рейсов в этих векторах - я имею в виду, иногда прямое время полета от ААА до AAG намного больше, чем непрямой рейс через АИТ, AAC, AAD, AAE и AAF, а затем я должен выбрать более короткий маршрут и хранить города, в которые я путешествовал. Есть ли какое-либо решение для поиска кратчайшего времени и маршрута? Список рейсов может варьироваться и не должен выглядеть так. Может быть, есть лучший контейнер для хранения данных? Пожалуйста, помогите мне.
Вы можете моделировать вашу проблему как 'graph' проблемы и использовать' кратчайшего маршрута path', чтобы найти кратчайший путь между двумя городами. – Bill
Ознакомьтесь с http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm для алгоритма кратчайшего пути. –