首页 文章

深度优先搜索算法

提问于
浏览
0

在boost库中实现的深度优先算法只访问每个顶点一次 .

是否有任何解决方法可以停用此选项 . 我希望只要在任何顶点有分支,就可以访问顶点 .

任何建议......

EDIT: 图表是非循环的 .

3 回答

  • 0

    如果你想枚举非循环图中的所有路径,那么我认为你不能轻易修改深度优先搜索来做到这一点 . 有专门为此目的设计的算法,特别是:Rubin,F . ,“列举图中的所有简单路径”,Circuits and Systems,IEEE Transactions on,vol.25,no.8,pp.641-642,1978年8月 .

    如果你知道Floyd-Warshall算法,你可以很容易地修改它来计算矩阵的每个元素中的路径列表,而不是最小距离,这将完成工作 . 上面的文章使用了一些位操作来使这个运行更快一些 .

  • 0

    想要在任何顶点都有分支时可以访问顶点 .

    你建议迭代器到达顶点的分支时做什么?

    深度优先搜索只是这个问题的一个答案 . Here是其他一些人 .

    但你必须选择一些东西 . 这不是关闭DFS的问题 .

  • 0

    我认为这在设计上是不可能的 . 因为如果你的图形包含循环(并且你有它们,当你说,顶点可以被访问多次)时,算法将以无限循环结束 .

相关问题