图中的最短路径

时间:2014-01-28 06:08:22

标签: c++ algorithm dijkstra shortest-path bellman-ford

我的图表以下列方式实现:

struct node{
    string ID;
    vector<string> neighbors;

}

struct graph{
    vector<string> nodes;
}

节点是节点的向量。每个节点都包含其ID和所有邻居(它指向的节点)ID

的向量

有没有办法可以应用Dijkstra算法或Bellman-Ford来找到两个节点之间的最短路径?找一个重复的循环?我该怎么做?

编辑:顽固的意外命名相同。

1 个答案:

答案 0 :(得分:1)

你没有提到边缘重量的任何内容。

如果你没有负边缘权重,Dijkstra算法就可以工作。

如果您没有负循环,Bellman-ford算法会起作用。但您也可以使用Bellman-Ford算法来检查您是否有负循环。

如果它是一个轻盈的边缘图,你可以使用BFS。