BCC----双连通分量

关于双连通的有关定义可以参照以下博客:

https://blog.csdn.net/huangshuai147/article/details/51356074

https://blog.csdn.net/huzujun/article/details/81086496

https://blog.csdn.net/cj1064789374/article/details/85037242

BCC:

BCC----双连通分量_第1张图片

图中的D点和E点我们称之为关节点。通过图中可以看到,如果D点或者E点有一个点不存在了,那么这两个关系网就会断裂。

BCC分解:

上图我们可以通过BCC分解得到3个点-双连通图,如下图所示:

点-双连通图:图中的任何一个点到达其余的点的路径至少两条(即图中没有关节点)。

BCC----双连通分量_第2张图片

BCC分解实际上就是对关节点进行分身,上面的例子就是把关节点分成两个(注意,进行BCC分解时关节点不一定非得分成两个,也可以分成很多个)

对于一张无向图,它的点-双连通的极大子图称为双连通分量(Biconnected Component)。

​边-双连通的极大子图称为边-双连通分量(edge-biconnected component)。

求关节点:

我们通过深搜来求关节点,具体做法如下:

情况一:(叶节点)

通过深搜,我们可以得到一个树,如下图所示:

BCC----双连通分量_第3张图片

图中的黄色顶点就是叶子节点,叶子节点肯定不是关节点

原因:树中的叶子节点如果丢失,那么树中的其他节点也可以连通,无法出现多个关系网

情况二:(根节点)

BCC----双连通分量_第4张图片                                        BCC----双连通分量_第5张图片

图中的根节点的孩子如果只有一个,那么该根节点不可能是关节点,如上图左图所示

图中的根节点的孩子如果有多个,那么该根节点就是关节点,如上图右图所示

情况三:(普通节点)

BCC----双连通分量_第6张图片

对于图中的v点,如果以它的孩子为根节点的部分(如图中的蓝色部分)中的任何节点往上指的节点的等级不超过v点的等级,那么v点就是一个关节点。如图中左边的蓝色部分(只要存在一个图中左边蓝色部分,那么v点就是关节点)

你可能感兴趣的:(BCC----双连通分量)