【发布时间】:2016-11-30 20:38:02
【问题描述】:
我目前正在研究 Dijkstra 的最短路径问题。我在这个项目中没有什么特别的,算法是标准的(用一组对实现),除了我需要打印从一个顶点到另一个顶点的边类型。
假设我有 4 个顶点和 5 个边。存在一对顶点 p(v1, v2),使得有 2 条或更多条边连接 v1 和 v2。例如,我们想找到从伦敦到巴黎的距离。我们知道我们都可以开车(一种边缘)或者我们可以买机票(另一种边缘)。我要做的是打印边缘的类型。
示例: 从伦敦到巴黎有两种方式: 伦敦 -> 加来 -> 巴黎,最少 5 小时车程; 伦敦 -> 巴黎,最少 1 小时,乘飞机。
我确切地知道,如何打印最短时间或最短距离,如何打印路径等。但是,我如何打印边缘类型(运输类型),例如“乘飞机”或“乘汽车” ?这是我尝试过的:
struct neighbor {
int target_vertex;
double weight;
int type;
// for type: 0 - car
// 1 - bus
// 2 - plane
};
但是,我仍然无法弄清楚,在计算最短路径时如何存储这些边缘“类型”。
此处代码:https://gist.github.com/anonymous/5943c448e47ebf0d3964baa53361459d
【问题讨论】:
标签: c++ algorithm graph dijkstra