我用C++编写了一些代码,它找到了通过道路或航班连接的两个城市之间的最短路径。城市可以与直达航班或间接航班相连。
用户可以这样键入航班:

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;

我很难在这些向量中找到间接航班——我的意思是,有时从AAA到AAG的直接航班时间比通过AAB、AAC、AAD、AAE和AAF的间接航班要长得多,然后我必须选择较短的航线并存储我所经过的城市。
有什么办法可以找到最短的时间和路线吗航班表可能会有所不同,不必这样。
也许有更好的容器来存储这样的数据?
求你了,帮帮我。

最佳答案

使用Dijkstra's algorithm查找最短路径。

07-23 22:37