当前位置: 首页 > 知识库问答 >
问题:

图中的每一个桥是DFS搜索树中的边吗?

龚振濂
2023-03-14

Skiena的《算法》一书中的一个问题:

设G是连通无向图。一条边e的去除使图断开,它被称为桥。在G的深度优先搜索树中,每个桥e一定是一条边吗?

我认为桥是一条边,它的endpoint是一个割结点,因为割结点的去除会断开图的连接,所以去掉那个边也会断开图的连接。DFS搜索树中的边是树边&后边,只有树边可以被切割边(或桥),因为后边移除不会断开图的连接。

共有1个答案

长孙硕
2023-03-14

基本上是的。不过,我有几点意见:

我认为桥是一条边,它的endpoint是一个割结点,因为割结点的去除会断开图的连接,所以去掉那个边也会断开图的连接。

这并不确切。特别是,如果您将其读作(bridge=>edge有一个剪切节点),则这是正确的。但用“桥是一条边,它的endpoint是...”来表述,它暗示了相反的含义,这是不正确的。总而言之,这句话在很大程度上与论点的其余部分无关,我将省略它。

...只有树边可以被切割边(或桥),因为后边移除不会断开图形的连接。

对,就是这样。此外,您还必须注意,DFS探索连通图的所有顶点(或标记所有边)。

 类似资料:
  • 我正在学习C++语言,我正在尝试编写BST,但是出了问题。我尝试添加元素到空树,根是NULL,但添加元素后,根仍然是NULL,尽管添加成功了(我在调试模式下看到,节点设置为tmp)。我不知道为什么会这样。

  • 我的任务是计算每个节点的深度,并将其存储在Node类中给出的“深度”中。但是我不知道我应该如何处理这个任务。我在互联网上寻找一些示例,但没有找到任何适合我的任务的示例。这是我给定的Node类的代码: 我以为我可以用类似的方法来计算树的高度,但是没有成功。有帮助吗?

  • 我有一个很严重的问题,就是在一棵树中重复搜索子树。 我试过了,但是。。。 似乎没有正确的形式。containsTree函数在找到与另一个节点不同的节点时停止搜索。 下面是两棵树的例子。 在这种情况下,当函数比较右边的子树和左边的子树时,当find等于父节点但它有不同的子节点时,它会停止搜索。我需要函数不要停止搜索,而是抛出这一点,搜索所有其他子节点及其子树。

  • 在一个已执行DFS的无向图中(为了生成一个DFS树,从而将每条边分类为树边或后边),图中是否存在仅由后边组成的循环,即没有树边?

  • 给定二叉查找树(BST)和整数val的根。 在BST中找到该节点的值等于val的节点,并返回以该节点为根的子树。如果这样的节点不存在,则返回null。 为什么'ans=root'不起作用??