首页 > 代码库 > 判断图中是否有环的方法

判断图中是否有环的方法

一、无向图

方法一:n算法: 
原理是: 如果存在回路,则必存在一个子图,是一个环路。环路中所有顶点的度>=2。

     第一步:删除所有度<=1的顶点及相关的边,并将另外与这些边相关的其它顶点的度减一。  

     第二步:将度数变为1的顶点排入队列,并从该队列中取出一个顶点重复步骤一。  

     如果最后还有未删除顶点,则存在环,否则没有环。

方法2:


DFS搜索图,图中的边只可能是树边或反向边,一旦发现反向边,则表明存在环。该算法的复杂度为O(V)。


二、有向图
 
主要有深度优先和拓扑排序两种方法