Tarjan与有向图连通性

本文介绍了Tarjan算法在有向图中寻找强连通分量的过程,包括搜索树、时间戳、追溯值的概念,以及如何通过后向边和横叉边构造环。算法通过深度优先搜索计算追溯值,并根据追溯值的判定法则找出强连通分量。同时提供了算法的实现代码。
摘要由CSDN通过智能技术生成

 给定有向图 G = ( V , E ) G=(V,E) G=(V,E),若存在 r ∈ V r \in V rV,满足从 r r r出发能够到达 V V V中所有的点,则称 G G G是一个“流图”,记为 ( G , r ) (G,r) (G,r),其中 r r r称为流图的源点。
 与无向图的深度有限遍历类似,我们也可以定义流图中的搜索树和时间戳的概念。

 流图中的每条有向边 ( x , y ) (x,y) (x,y)必然是一下四种之一:
 1.树枝边,指搜索树中的边,即 x x x y y y的父节点
 2.前向边,指搜索树中 x x x y y y的祖先节点。
 3.后向边,指搜索树中 y y y x x x的祖先节点。
 4.横叉边,指除了以上三种情况之外的边,它一定满足 d f n [ y ] < d f n [ x ] dfn[y]<dfn[x] dfn[y]<dfn[x]
如下图所示:
在这里插入图片描述

有向图的强连通分量

 给定一张有向图,若对于图中任意两个节点 x , y x,y x,y,既存在从 x x x y y y的路径,也存在从 y y y x x x的路径,则称该有向图是“强连通图”。
 有向图的极大连通子图被称为“强连通分量”,简记为 “ S C C ” “SCC” SCC。此处的极大与双连通分量的极大的意思是一样的。

一个“环”一定是强连通图。如果既存在从 x x x y y y的路径,也存在从 y y y x x x的路径,那么 x , y x,y x,y显然在一个环中。因此, T a r j a n Tarjan Tarjan算法的基本思路就是对于每个点,尽量找到与它一起能构成环的所有节点。

 其实前向边 ( x , y ) (x,y) (x,y)没有什么用处,因为搜索树上本来就存在从 x x x y y y

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值