我的图的实现方式如下:
struct node{
string ID;
vector<string> neighbors;
}
struct graph{
vector<string> nodes;
}
节点是节点的向量。每个节点都包含其id和所有邻居(它指向的节点)id的向量
有没有方法可以应用dijkstra算法或bellman-ford来找到两个节点之间的最短路径?找到一个重复的循环?我该怎么做?
编辑:sturcts是意外命名的。
最佳答案
你没有提到边缘重量。
如果没有负边缘权重,Dijkstra算法就可以工作。
如果没有负循环,Bellman-ford算法就可以工作但你也可以使用贝尔曼福特算法来检查你是否有一个负周期。
如果它是一个无重边图,你可以使用bfs。