algorithm - 枚举有向无环图中的所有路径

标签 algorithm graph

是否有任何标准算法可以在有向无环图中找到所有可能的路径。 如果没有,我如何更改 BFS/Dijkstra/任何其他算法以枚举 DAG 中的所有路径

最佳答案

在 Exponential 中找到任何图中的所有可能路径。可以使用回溯法解决。 对于 DAG,我们可以使用深度优先搜索 (DFS) 来完成。 在 DFS 代码中,从任何节点开始,转到极端的死胡同路径,并使用一些数组或列表记下该路径中访问过的所有节点。一旦发现死胡同,就打印包含已访问节点的数组并弹出最后存储的节点并从第 (n-1) 个节点的另一条路径开始。如果第 (n-1) 个节点的所有路径都用完了,则从列表中弹出该节点并从 (n-2) 个节点开始。这样做直到到达所有死胡同并到达第一个节点。 所有打印的路径都是给定 DAG 中的路径。

可以查看代码http://pastebin.com/p6ciRJCU

关于algorithm - 枚举有向无环图中的所有路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38050877/

相关文章:

c - 有什么方法可以改进这个函数,用 malloc 分配的字符串中的另一个字符串替换子字符串的出现?

javascript - 平滑数组中的值

algorithm - 拓扑排序算法

c - 如何针对 2 个节点之间的单个最短路径优化 Dijkstra 算法?

c++ - 如何将局部变量传递给 lambda 函数?

windows - Windows(或其他操作系统)如何更新客户端的后台区域?

html - 使用 d3 在两个节点之间绘制多条边

python - 使用图形工具绘制时阻止顶点相互重叠

python - 在 python 中折叠 DNA 序列的正向和反向补码的算法?

algorithm - 图中有多个 "must have"节点的最短路径