中易网

c语言 在用广度优先算法求最短路径时候,怎么样能记录它的路径

答案:2  悬赏:0  
解决时间 2021-04-27 12:58
  • 提问者网友:痞子房西
  • 2021-04-27 04:18
rt 给思路给代码都ok 求解
最佳答案
  • 二级知识专家网友:滚出爷的世界
  • 2021-04-27 05:02
路径
template
void Dijkstra(int n, int v, Type dist[], int prev[], Type **c) {
//单源最短路径问题的 Dijkstra 算法
bool s[maxint];
for (int i = 1; i <= n; i++) {
dist[i] = c[v][i];
s[i] = false;
if (dist[i] == maxint) prev[i] = 0;
else prev[i] = v;
}
dist[v] = 0; s[v] = true;
for (int i = 1; i < n; i++) {
int temp = maxint;
int u = v;
for (int j = 1; j <= n; j++)
if (!s[j] && dist[j] < temp) {
u = j;
temp = dist[j];
}
s[u] = true;
for (int j = 1; j <= n; j++)
if (!s[j] && c[i][j] < maxint) {
Type newdist = dist[u] + c[u][j];
if (newdist < dist[j]) {
dist[j] = newint;
prev[j] = u;
}
}
}
}
另外,站长团上有产品团购,便宜有保证
全部回答
  • 1楼网友:都不是誰的誰
  • 2021-04-27 05:47
回溯 对每一个点记录来的时候的路径,从终点回溯到起点就可以知道路径
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息