【发布时间】:2019-04-07 23:25:08
【问题描述】:
所以我一直在尝试寻找在未加权图中找到两个特定节点之间的所有最短路径的方法,并且我已经编写了代码,直到我建立了一个“前身”数组来跟踪我用来到达给定节点的节点。这个数组是一个多维数组,例如,如果从 A 到 D 的最短路径可以是 A > B > D OR A > C > D,那么前驱数组将如下所示(其中第一行是索引,并且那么下面的行是一个多维数组):
A | B | C | D |
---------------------------
| A | A | B |
---------------------------
| | | C |
但是现在我不知道如何找到这个前身数组中的每个排列,以获得最短路径的所有可能组合,然后打印出来,例如我想打印出来:
All shortest paths:
A > B > D
A > C > D
我听说有人说你可以通过递归来做到这一点?但是我很迷茫。 (另外请注意,我不太担心时间复杂度)。感谢您的指导!
【问题讨论】:
标签: algorithm graph graph-algorithm breadth-first-search graph-traversal