点双连通分量是一个极大的子图,满足图中删去任何一个点都不会改变图的连通性。
性质
点双连通分量中没有割点。
若干个点双连通分量以割点相连接。
原图中的每个割点可能属于多个点双连通分量,其余点和每条边只属于一个点双连通分量。
边双连通分量一定是点双连通分量,但点双连通分量不一定是边双连通分量。
算法
Tarjan 求割点时维护一个栈,类似于求强连通分量。
每次找到一条边(树边或非树边)时将边入栈。当找到一个割点后,将栈顶的边直到当前走到割点的这条边全部出栈,这些边的邻接点构成了一个点双连通分量。
同理,求边双连通分量,用 Tarjan 先求桥,再把桥边删去,原图变为多个连通块,则每个连通块就是一个边双连通分量。