📜  算法|图遍历|问题12

📅  最后修改于: 2021-07-02 15:32:36             🧑  作者: Mango

令G为无向图。考虑G的深度优先遍历,并将T作为结果的深度优先搜索树。令u为G中的顶点,令v为在遍历中访问u后访问的第一个新的(未访问的)顶点。下列哪个陈述总是正确的? (GATE CS 2000)
(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是叶子),则控制权将返回给父级,父级然后访问下一个未访问的孩子。
这个问题的测验