对于无向图G。若删除顶点v后G所包含的连通图增多,则称v为切割节点(cut vertex)或关节点(articulation point)。不含任何关节点的图被称为双连通图。任一无向图都都可以看做是若干个极大的双连通子图组合而成,这样的子图被称为双连通域(bi-connected component)。

下图中c就为关节点

双连通域分解

蛮力算法

先通过BFS或者DFS搜索出图G所含连通域的数目;然后逐一枚举每一个顶点v,暂时将它从图G中删除。在此搜索统计出此时的图G\{v}所含连通域的数目。如果顶点v是关节点,当且仅当图G\{v}包含的连通域多于图G。

但算法非常耗时,为双连通域分解

可行算法

在经过DFS搜索的搜索树中,DFS树中的叶节点,不可能成为原图中的关节点。如DFS树的根节点若至少有两个分支,则必是一个关节点。

双连通域分解 

内部节点的判定铜过通过判断某节点的真子树和真祖先。如下图如节点c的移除导致其某一课(比如以D为根的)真子树与其真祖先(比如A)之间无法连通,则C必为关节点。反之,若C的所有真子树都能(如以E为根的子树那样)与C的某一真祖先连通,则C就不可能是关节点。

双连通域分解 

 

相关文章:

  • 2021-09-18
  • 2021-11-28
  • 2021-11-28
  • 2021-05-06
  • 2022-12-23
  • 2021-11-28
  • 2022-12-23
猜你喜欢
  • 2021-11-28
  • 2021-10-11
  • 2021-11-28
  • 2021-11-28
  • 2021-11-14
  • 2021-11-28
相关资源
相似解决方案