【发布时间】:2012-12-15 03:50:57
【问题描述】:
什么是根切割节点,桥切割节点,父切割节点在寻找关节顶点? 有人可以用例子解释一下吗? 我特别对桥接节点感到困惑。 它的定义说
如果从 v 中最早可达的顶点是 v,则删除单个 edge (parent[v], v) 断开图
v 中最早可达的顶点怎么可能是 v?
【问题讨论】:
-
你从哪里得到这个定义的?
-
我正在阅读skiena的算法设计手册。它将每个节点的最早可达顶点初始化为自身,并在使用dfs遍历图形后,如果它保持不变,则它是一个桥节点。
-
Skiena 的 ADM 通常非常出色,但我认为它会在特定部分丢球。这是我见过的关于关节顶点 DFS 算法的最复杂和最令人困惑的解释之一。根切割节点、桥切割节点、父切割节点。什么?您真正需要知道的是,如果节点 N 的任何直接子节点没有返回 N 的祖先之一的替代路径,则节点 N 就是 AV。它对所有 N 都有效,除非 N 是叶子或具有单个子节点的根(从技术上讲,这使它成为叶子)。
-
另外,我认为对如何确定节点的最早可达祖先 (ERA) 进行更严格的解释 - 即通过从其后端选择其自己的直接祖先中最早的一个 和 它的孩子的ERA - 会非常有帮助。从那时起,算法变得轻而易举。