java - 单根有向无环图环检测

标签 java algorithm graph topological-sort

该图只有一个根。并以如下格式保存:

0 -> 1,
0 -> 2,
1 -> 3,
1 -> 4,
2 -> 4,
2 -> 5,
4 -> 5,
5 -> 2 (This is the cycle)

使用 Java 检测图中是否至少存在一个循环的最有效方法是什么?谢谢!

example

最佳答案

正如评论中提到的,可能是某种 DFS,例如

SET isCyclic to false
DFS(node)
   IF isCyclic is true THEN 
       RETURN
   FOR each neighbor in node.neighbors
       IF node.visited is true THEN
           SET isCyclic to true
           RETURN
       SET neighbor.visited to true
       DFS(neighbor)

关于java - 单根有向无环图环检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38306404/

相关文章:

java - tomcat 8.5 上的 Apache cxf 回车问题

java - 触发 Jenkins 作业时动态设置 cucumber 标签

java - 通过递归函数进行跟踪

Python 类次调度优化

algorithm - 图着色算法

java - 如何获取JSTL/EL中的前向信息,是一个包含点的属性

找到最少的矩形以覆盖一组矩形而不重叠的算法

python - 如何知道可以为 Python 3 中的平台设置的最大递归深度?

ios - 如何使用 CorrPlot 创建看起来像饼图的饼图?

c++ - cpp 中 Graph 的最简单实现