G和DFT的节点之间的深度优先遍历关系
Posted
技术标签:
【中文标题】G和DFT的节点之间的深度优先遍历关系【英文标题】:Depth First Traversal relationship between nodes of G and DFT 【发布时间】:2018-05-29 05:03:37 【问题描述】:令 G 为无向图。考虑 G 的深度优先遍历,令 T 为生成的深度优先搜索树。设 u 为 G 中的一个顶点,设 v 为在遍历中访问 u 后访问的第一个新的(未访问的)顶点。以下哪项陈述总是正确的?
(A) u,v 必须是 G 中的一条边,并且 u 是 T 中 v 的后代
(B) u,v 必须是 G 中的一条边,且 v 是 u 在 T 中的后代
(C) 如果 u,v 不是 G 中的边,则 u 是 T 中的叶
(D) 如果 u,v 不是 G 中的一条边,那么 u 和 v 在 T 中必须有相同的父节点。
================================================ ============================
正确答案是(C)
但我被 (B) 困住了,我没有得到 (B) 的任何反例
【问题讨论】:
【参考方案1】:考虑下图(实际上是一棵树)。
G := (V, E) where
V := a, u, v and E := a,u, a,v.
在G
中的深度优先遍历可以首先访问a
,然后是u
,最后是v
。在访问u
的点,v
是下一个未访问的节点。但是,u, v
不是E
的边,因此声明(B)
是错误的。
【讨论】:
v 是你的后代吗? v 是 a 的后代,对吧? @MicroLegions 是的,完全正确。v
不是u
的后代,而是a
的后代,但是v
在u
之后被立即访问。
那么选项 (B) 如何为假,因为 v 不是 u 的后代,并且 G 中的 (u,v) 中没有边。至少其中一个必须为真。我的意思是,是否存在 (u,v) 是 G 中的一条边,但在 T 中 v 不是 u 的后代的情况,或者您可以证明 v 是 u 的后代,但 (u,v) 不是一条边在 G 中,这将是反例。
先生,我没有关注你,我知道 (u,v) 不是 G 中的一条边,但是 v 也不是 u 的后代。那么,我错过了什么?好的,你能举一个(C)和(D)的例子吗
选项 (B) 为假,因为 u, v
不是 G
中的边。您在评论中描述的情况不会发生。我以这样一种方式理解声明 (B),特别是它指出,如果在访问 u
之后立即访问 v
,则 u, v
是 G
的边缘;但是,通常情况并非如此。以上是关于G和DFT的节点之间的深度优先遍历关系的主要内容,如果未能解决你的问题,请参考以下文章