图论:桥(割边)和割点

定义

对于无向图,如果删除了一条边,**整个图的联通分量数量变化,**则这条边称为桥
如图,红色标注的线就是该图的一条桥(顶点3和顶点5的边).
示例桥

性质

  • 一个图中可以有多条桥
    如下图,红色的边都是图中的桥
    一个图中可以有多条桥

  • 一棵树的所有边都是桥
    如下图,红色边都是图中的桥,一颗树中任意一条边的断开都会导致图中联通分量发生变化
    一棵树的所有边都是桥

寻找桥

  • 设置两个数组,Order和Low,并将已访问过的顶点置为绿色
    • Order表示当前顶点遍历的顺序
    • Low表示当前顶点能访问到的顶点的最小值
  • 递归遍历,给0-1-3-2顶点依次标上Order和Low,并且将已访问过的顶点置为绿色,如下图
    在这里插入图片描述
  • 在顶点2时 所有连接的顶点都已被访问,并且可以访问到的最小顶点为0,故将Low[2]置为0,并且将顶点置为绿色
    在这里插入图片描述
  • 回退到顶点3,将Low[3]的值置为min(Low(2),Low(0))
    在这里插入图片描述
  • 访问顶点3的另一个连接的顶点5,并依次给5-4-6标上Order和Low,并且将已访问过的顶点置为绿色,如下图
    在这里插入图片描述
  • 到达顶点6时,其连接的顶点都被遍历过,此时将Low[6]置为min(Low(5), Low(4)),并将节点置为绿色
    在这里插入图片描述
  • 回退到顶点4,其连接的顶点都被遍历过,此时将Low[4]置为min(Low(5), Low(6))
    在这里插入图片描述
  • 回退到顶点5,此时的Low[5]>Order[3],即顶点5无法访问到顶点3的祖先顶点的,故顶点3-顶点5是一条桥,如下图
    重新复习下Order和Low的定义
    • Order表示当前顶点遍历的顺序
    • Low表示当前顶点能访问到的顶点的最小值
      在这里插入图片描述
  • 依次回退到顶点3-1,到达顶点1时,其连接的顶点都被遍历过,此时将Low[1]置为min(Low(3), Low(0))
    在这里插入图片描述
  • 至此,查找完成,在图中有且存在一条桥(顶点3-顶点5),整个过程的动图如下
    查找桥(动图)

查找桥使用了深度优先遍历(DFS),可否使用广度优先遍历(BFS)? -> 不能!

详情请看BFS遍历树和DFS遍历树

割点

定义

对于无向图,如果删除了一个顶点(顶点邻边也删除),整个图的联通分量数量改变,则称这个顶点为割点,如下图,顶点3和顶点5就是该图的两个割点
示例

性质

与桥的性质类似

  • 一个图可以有多个割点
  • 桥两边的点不一定是割点,如一棵树
  • 一棵树不是每一个点都是割点(一棵树的每一条边都是桥)

查找割点

注意:以下描述中,分为顶点和节点,顶点为图中的每一个顶点,节点为遍历树中的每一个节点
同寻找桥一致,给各个顶点标记上Order和Low(详情请参照文章前部的寻找桥)
在这里插入图片描述
遍历树中,假设节点v有一个孩子节点w,满足Low[w]>=Order[v],则v是割点
分析:

  • 如果孩子节点w最小能到达的节点就是它的父节点v,那么如果断开节点v,则w无法再访问到小于v的任何节点,所以该理论成立
  • 根节点
    • 在图中绝对不包含比根节点小的节点,所以上述的判断方式不适用于根节点
    • 对于根节点,如果有一个以上的孩子节点,则这个根节点是割点,如下图
      根节点有多个子节点
  • 9
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
拓扑排序、割点割边以及强连通分量是图论中的重要概念和算法。 1. 拓扑排序(Topological Sorting): 拓扑排序是对有向无环图(DAG)进行排序的一种算法。拓扑排序可以得到一个顶点的线性序列,使得对于任意一条有向边(u, v),在序列中顶点u都排在顶点v的前面。拓扑排序常用于表示任务之间的依赖关系,例如在工程项目中确定任务的执行顺序。 2. 割点割边(Cut Vertex and Cut Edge): 割点是指在无向连通图中,如果移除该顶点以及与该顶点相连的所有边,会导致图不再连通,则该顶点被称为割点割边是指在无向连通图中,如果移除该边,会导致图不再连通,则该边被称为割边割点割边的存在可以影响到图的连通性,因此在网络设计、通信等领域有着重要的应用。 3. 强连通分量(Strongly Connected Component): 强连通分量是指在有向图中,如果对于图中任意两个顶点u和v,存在从u到v和从v到u的路径,那么称u和v在同一个强连通分量中。强连通分量可以将有向图的顶点划分成若干个子集,每个子集内的顶点之间互相可达。强连通分量可以用于分析网络中的关键节点,寻找网络的可靠性,以及在编译器设计中进行代码优化等领域。 这些概念和算法在图论中都有着广泛的应用,并且还有许多相关的算法和扩展。深入理解和掌握这些概念和算法,可以帮助我们更好地理解和解决各种与图相关的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值