首页 文章

查找图中所有路径的理想算法[重复]

提问于
浏览
6

这个问题在这里已有答案:

我们以此图为例:

graph

现在让我们说我从顶点3开始并想要找到顶点7.深度优先搜索(取决于实现)将首先查看子节点 . 现在,在我们的例子中,为了参数,我从顶点2开始,然后转到顶点4和顶点2,返回到顶点并转到顶点7,问题解决了 .

我想要的是:我想得到所有可能的路径,从x到y(例如3到7:3,1,4,7 - 3,5,7 - 3,4,7 - 3,5,6,9,7) . 我没有从Depth第一次搜索获得 .

您建议的算法是什么?

谢谢!

1 回答

  • 4

    您应该使用修改后的BFS算法(http://en.wikipedia.org/wiki/Breadth-first_search) . 在每个顶点上,您应该保存邻居列表,这些邻居通向此顶点(前导)而不是只有一个邻居通向此顶点 .

    当你想要从中找到所有路径时,你只需要在你的终端节点上开始并在每个顶点分支你的路径,这个顶点有超过1个前驱,并且在每个顶点中使用前驱者创建的方式,直到你开始使用你有的所有分支机构 .

    编辑:您可以使用DSF算法而不是BFS并以相同的方式修改它 .

相关问题