使用图表

时间:2015-06-16 06:43:39

标签: c++ algorithm graph

有人可以帮助我更好地思考Dijkstra算法在这些条件下的适应性吗?我认为并不是很好。

输入示例:

GP4578 MADRID 01:00 PORTO 02:00

IK6587 PORTO 03:00 VALENCIA 05:00 05:30 TENERIFE 08:00

AB5874 VALENCIA 05:40 BERLIM 10:00

" VALENCIA 05:00 05:30"这是一个中途停留,所有这些都是大约30分钟。 该航班有到达和离开时间,航班号,出发地和离乡城市。

所以,我需要从城市到另一个城市的最短路径,好吧,没问题。 我无法对此进行构建,自上周以来我一直在尝试。 有人可以给我一些想法吗?谁是我的顶点?如何使用边缘?

1 个答案:

答案 0 :(得分:0)

这是我建议的图表: 两种顶点:

  1. 出发顶点:机场+出发时间
  2. 到达顶点:机场+到达时间。
  3. 两种边缘:

    1. 飞行边缘:从出发顶点到达到达顶点
    2. 等待边缘:从同一机场的到达顶点到晚些时候的出发顶点。
    3. 边缘上的权重是持续时间,问题是单源最短路径,您可以使用Dijstra的算法解决它。 至于中间着陆的航班,只需将它们分成几个部分。