令G为无向图。考虑G的深度优先遍历,并将T作为结果的深度优先搜索树。令u为G中的顶点,令v为在遍历中访问u后访问的第一个新的(未访问的)顶点。下列哪个陈述总是正确的?
(A) {u,v}必须是G中的边,而u是T中v的后代
(B) {u,v}必须是G中的边,而v是T中u的后代
(C)如果{u,v}不是G中的边,则u是T中的叶子
(D)如果{u,v}不是G中的边,则u和v必须在T中具有相同的父代答案: (C)
解释:
In DFS, if 'v' is visited
after 'u', then one of the following is true.
1) (u, v) is an edge.
u
/ \
v w
/ / \
x y z
2) 'u' is a leaf node.
w
/ \
x v
/ / \
u y z
在DFS中,访问节点后,我们首先对所有未访问的孩子进行递归。如果没有未访问的孩子(u是叶子),则控制权将返回给父级,父级然后访问下一个未访问的孩子。
这个问题的测验