割点与桥(割边)的定义
割边和割点的定义仅限于无向图中
**割点:**无向连通图中,去掉一个顶点及和它相邻的所有边,图中的连通分量数增加,则该顶点称为割点。
**桥(割边):**无向联通图中,去掉一条边,图中的连通分量数增加,则这条边,称为桥或者割边。
割点与桥(割边)的关系:
1)有割点不一定有桥,有桥一定存在割点
2)桥一定是割点依附的边
桥=>割点,割点≠>桥
图中顶点C为割点,但和C相连的边都不是桥。
暴力解决办法解决求解割点集和割边集
通过定义
去掉某个顶点,然后进行遍历,如果连通分量增加,那么该顶点就是割点
去掉某条边,然后进行遍历,如果连通分量增加,那么该边就是割边。
割点判断(Tarjan算法)
什么点似乎可以成为割点呢?
当然是某一块区域只能通过某个点走到其他部分啦
解释的更加学术一点:
“在深度优先遍历的时候访问到u点,此时图被u分割成两部分,一部分为已访问点,另一部分为未访问点。如果u是割点,那剩下的未被访问点中至少有一个点在不经过点u的情况下无论如何也回不到已访问的点。”
这某一块区域跟有向图的强连通分量似乎有点相似,都像是一块饼(或者环)?!
叫它饼是因为环中间部分可能还有边。
把这么一块饼或者环找出来要怎么做呢?
在这块饼里面跑,肯定会遇到(老早)之前跑过的点,然后发现卡死了,回去。
把这块饼里面都打上同一个标记不就让它显现出来了吗?
显现出来了之后,找出它通往其他部分的桥梁不就很容