我也在尝试使用Dijkstra的路径来学习图形,并正在使用this geeks for geeks tutorial。我想我了解使用重量找到最短路径的方式。但是,这可能是愚蠢的,但我不明白如何通过查看代码来找到目的地。或9种输入方式
为什么有9个输入只能使用3个输入?程序如何知道在哪里结束?
答案 0 :(得分:0)
该示例中的程序在访问所有节点后结束,它没有选择特定的目的地。它计算出节点0到图中每个节点的最小距离(和路径)。
示例中有9个节点,但是您当然也可以使用3个节点或1000个节点。
答案 1 :(得分:0)
因此,为了解决您的问题的前半部分,没有使用Dijsktra算法的预定“目标节点”,而且还只是最终结果。
在此示例中,来自GeeksforGeeks代码,
void dijkstra(int graph[V][V], int src)
我们可以看到该算法需要一个所有节点的数组,以及要从哪个节点开始。该数组中的每个节点都有9个输入,这些输入对应于该节点到任何其他节点的给定距离,其中0表示没有连接。例如,“ 0”节点具有以下值:
{0,4,0,0,0,0,0,8,0}
这意味着节点0距离节点1 4个单元,距离节点7 8个单元,或者与其他7个节点没有连接,或者是其他7个节点之一。如果只有3个节点,则将使用3个输入来表示所有3个节点之间的可能距离。
当程序用尽所有可能的节点和路径时,算法将停止。该算法寻找最小的生成树,而不是从A点到B点的路径。