【问题标题】:Finding articulation points using DFS and the bi-components algorithm使用 DFS 和双分量算法查找关节点
【发布时间】:2016-10-23 17:35:18
【问题描述】:

我在实现(不是代码)DFS 时遇到了麻烦,它结合了双分量算法来查找图中的关节点,该算法是在我的计算机科学讲座中介绍的,但我没有掌握实现。 (只是为了澄清我知道如何实现 DFS)让我解释一下:给定一个图表,我们必须执行 DFS 以使用后退数字和 DFS 编号找到所有关节点。我的主要问题是使用给定的算法找到每个节点的回数。

我们得到了一个教程作为实现算法的练习,我做到了,但我不知道它是否正确。有人可以检查我是否正确地完成了它,如果可能的话纠正我。教程题如下

使用课堂上完成的算法来做一个 算法的深度优先搜索树。对于每个顶点查找:

• dfs 编号

• 后面的号码

• 是否为关节点 算法和我的解决方案是: 谢谢。希望有人可以帮忙

【问题讨论】:

  • 为什么你认为J应该是一个关节点?它不是一个。 B 也不是关节点。
  • 因为根据关节点条件15>14,所以它是一个关节点,但是我知道这不是真的,因为如果我们删除J,它不会断开图形
  • 您有 dfs-time = 14 和 back-number=12。根据您的算法,这不是关节点,它确实不是关节点。
  • 是的,我在那里看到了我的错误

标签: algorithm theory depth-first-search


【解决方案1】:

你的算法几乎是正确的。唯一处理不当的情况是根:当且仅当根在 dfs 树中有两个或多个子节点时,它才是一个连接点。

【讨论】:

  • 谢谢,在这种情况下,关于根,它是一个发音,因为它确实有两个孩子,那为什么处理不当呢?
  • @amine dfs 树中的两个孩子,而不是原始图。如果只有一个孩子(您的问题中的图表就是这种情况),即使 Back(w) >= dfs-time(root) 对于任何孩子,它也不是一个关节点。
猜你喜欢
  • 1970-01-01
  • 2021-09-30
  • 2023-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多