Tarjan算法求割边——leetcode1192

本文学习自 Tarjan算法:求解图的割点与桥(割边),以leetcode1192题为练习讲述割边的求法。

 

 一、割边的定义

在无向图中,若去掉某条边会导致图中的连通分量增加,则这条边称为割边(或称为桥)。

而连通分量,就是一个图的某个子图,该子图中的所有顶点互相连通(任意两个顶点之间都存在可以互相到达的路径),而这些顶点都与子图之外的其他顶点不连通。

二、Tarjan算法原理

Tarjan算法是基于深度优先搜索的算法。

  • 进行DFS时,若我们从节点U出发,访问到的下一个还未被访问到的节点V,则称U是V的父节点,V是U的子节点。
  • 在访问到节点U之前所有已经访问过的节点,称为U的祖先节点。
  • 通过上面的定义可知,从节点V出发访问到节点U有两种方式,一种是通过U-V之间的边,另一种是V先访问U的祖先节点,再通过U的祖先节点访问到U。(U和其祖先节点之间必有互相连通的路径)
  • 若我们删去U-V之间的边之后,我们再也找不到从V出发访问到U的路径&
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值