C++ 强连通分量 -- 割点(割顶)

本文介绍了无向图的割点概念,包括割点集合和割点的定义,并详细讲解了如何用C++实现割点的暴力枚举和Tarjan算法。割点是在删除后导致图分裂的特殊顶点,而Tarjan算法是用于高效判断割点的一种方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录:

简介割点

        割点集合

        割点

实现

         1.暴力

        2.Tarjan


简介割点:

        割点集合:

        在一个无向图中,如果有一个顶点集合,删除这个顶点集合以及这个集合中所有顶点相关联的边以后,图的连通分量增多,就称这个点集为割点集合。

        在无向联通图 G = ( V , E ) 中: 若对于 x ∈ V , 从图中删去节点x以及所有与 x 关联的边之后, G 分裂成两个或两个以上不相连的子图, 则称 x 为 G 的割点。 简而言之, 割点是无向联通图中的一个特殊的点, 删去中这个点后, 此图不再联通, 而所以满足这个条件的点所构成的集合即为割点集合。

        割点:

        如果某个割点集合只含有一个顶点 X(也即 { X } 是一个割点集合),那么 X 称为一个割点。

        设 G 是一个图,x 是 G 的一条边,如果 G - x 的连通分支数大于 G 的连通分支数,则称 x 是 G 的一个桥,或割边。

实现:

        引入一道例题: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值