繁体   English   中英

DFS 树和 DFS 森林

[英]DFS trees and DFS forests

我从以下方面了解 DfS 树:

http://rosalind.info/glossary/algo-depth-first-search/

在“有向图中的深度优先搜索”部分中,如果我们添加一个没有边指向它的节点Z ,但只有一条边从 Z 到 C,那么 Z 会出现在生成的 DFS 树中的哪个位置?

它从 Z 到 C 的边会被认为是树边还是交叉边?

谢谢!

当您为给定的问题构建新的 DFS 树时,这将是显而易见的:

  1. 当前用于探索 A 到 H 的 DFS 树是相同的。 Z 不是它的一部分,因为它没有通过任何边连接到 Z。 由于选择顶点的字典顺序,它不会在 A 之前被选择。

  2. 在访问 A 到 H 之后,Z 不会被访问,这些将被 - 按字典顺序 - 选择用于探索。 这将是 DFS 森林中的一棵新 请注意,在单向情况下,当您忽略示例中所示的非树边时,这只是一个 DFS 森林。

  3. 术语指出,交叉边……通向一个已经被完全探索过的节点 Z 与之前探索的 C 有一个边,它的边是一个交叉边。

你应该自己检查这个答案。

树(或森林)的外观以及 ZC 的类型取决于 DFS 的运行位置以及首先选择的节点。 如果 DFS 在访问 C 之前访问 Z,那么 ZC 将是树边,因为它是唯一的,而 Z 将是具有多个节点的树的一部分。 如果 DFS 从 Z 开始,那么就会有一个以 Z 为根节点的树。 但是,如果仅在 C 已被访问后才发现 Z,则 C 也必须已完成(完全探索),因为任何其他节点都无法到达 Z。 因此,在这种情况下,ZC 是一个交叉边,而 Z 本身就在一棵树中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM