【发布时间】:2017-12-11 15:02:17
【问题描述】:
我正在用 C++ 实现一个 Dijkstra 程序,但遇到了一些问题,让我解释一下:
目前我一直在关注此代码: http://www.geeksforgeeks.org/printing-paths-dijkstras-shortest-path-algorithm/
此代码打印从源到所有其他顶点的完整路径。 我正在使用数组 int parent[num_vertexs];存储路径。但问题是我不想要完整路径,只想要访问的第一个顶点。
我怎样才能只访问第一个节点?有没有办法只打印每个节点的父数组的第一个节点?
非常感谢您的宝贵时间。
编辑: 我将向您展示我的函数来打印父数组,其中包含从源顶点到所有其他顶点的完整路径。
void printPath(int parent[], int j){
// Base Case : If j is source
if (parent[j]==-1)
return;
printPath(parent, parent[j]);
printf("%d ", j);
}
此函数打印完整路径,但我只想要路径的第一个顶点。问题是我不知道如何只打印每个顶点的第一个,因为 printf 指令会打印完整路径。你能告诉我我该怎么做吗?谢谢!
【问题讨论】:
-
是的,有办法。如果您将相关功能编辑到您的问题中,我们将向您展示如何更改它。 (我们不喜欢这里的链接相关问题。)
-
感谢 Beta 的回复,我已经编辑了帖子。你能告诉我我必须在函数中做哪些更改吗?
标签: c++ printing path dijkstra