环的检测
无向图的无环验证:
UnionFind验证无向图的无环性
uf = UF(n)
for p, q in edges:
if not uf.union(p, q): # 已经连通,图中有环
return False
return uf.count==1 # 只有一个连通分量深度优先搜索验证无向图的无环性
def dfs(i):
vis.add(i)
for j in graph[i]:
if j in vis:
return True
dfs(j)
return False
vis = set()
if dfs(0): # 已经连通,图中有环
return False
return len(vis)==n # 只有一个连通分量有向图的无环验证
拓扑排序验证DAG的无环性
深度优先搜索验证DAG的无环性
Last updated