tarjan算法——关于无向图连通性

本文详细介绍了tarjan算法在无向图连通性问题中的应用,包括割点、割边的定义、判定法则以及无向图的双连通分量。通过算法实现,解释了如何计算割点、割边,并探讨了点双连通分量(v-DCC)和边双连通分量(e-DCC)的求解方法。
摘要由CSDN通过智能技术生成

tarjan算法引入

 图论算法,反正很牛逼,可以用来解决很多的图论问题,主要是与连通性问题有关的。
 在正式学习tarjan算法之前,我们需要了解一些基础概念

tarjan算法中的图论概念

 时间戳 d f n [ x ] dfn[x] dfn[x]:结点 x x x的搜索的次序编号。( d f s dfs dfs序)
 追溯值 l o w [ x ] low[x] low[x]:设 s u b t r e e ( x ) subtree(x) subtree(x)表示搜索树中以 x x x为根的子树。 l o w [ x ] low[x] low[x]定义为以下节点的时间戳的最小值:
 1. s u b t r e e ( x ) subtree(x) subtree(x)中的节点。
 2.通过1条不在搜索树上的边,能够到达 s u b t r e e ( x ) subtree(x) subtree(x)的节点
 举个例子。 s u b t r e e ( 2 ) = 2 , 3 , 4 , 5 subtree(2)={2,3,4,5} subtree(2)=2,3,4,5。此外,节点1通过不在搜索树上的边 ( 1 , 5 ) (1,5) (1,5)能够到达 s u b t r e e ( 2 ) subtree(2) subtree(2)。所以 l o w [ 2 ] = 1 low[2]=1 low[2]=1
 根据定义,为了计算 l o w [ x ] low[x] low[x],应该先在遍历时令 d f n [ x ] = l o w [ x ] dfn[x]=low[x] dfn[x]=low[x],然后考虑从 x x x出发的每条边 ( x , y ) (x,y) (x,y):
 若在搜索树上 x x x y y y的父节点,则令 l o w [ x ] = m i n ( l o w [ x ] , l o w [ y ] ) low[x]=min(low[x],low[y]) low[x]=min(low[x],low[y])
 若无向边 ( x , y ) (x,y) (x,y)不是搜索树上的边,则令 l o w [ x ] = m i n ( l o w [ x ] , d f n [ y ] ) low[x]=min(low[x],dfn[y]) low[x]=min(low[x],dfn[y])
在这里插入图片描述

tarjan算法的分类(持续更新中)

割点

割点的定义

 割点:如果去掉一个点以及与它连接的边,该点原来所在的图被分成两部分(不连通),则称该点为割点。

割点的判定法则

 若x不是搜索树的根节点(dfs遍历的起点),则x是割点当且仅当搜索树上存在x的一个子节点y,满足:
d f n [ x ] ≤ l o w [ y ] dfn[x]\l

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值