让 LASTPOST、LASTIN 和 LASTPRE 表示在后序、中序和前序遍历中访问的最后一个顶点。分别为一棵完全二叉树。以下哪项总是正确的? (GATE CS 2000)
(A) LASTIN = LASTPOST
(B) LASTIN = LASTPRE
(C) LASTPRE = LASTPOST
(D)以上都不是答案: (D)
解释:假设给定的树是完全二叉树。对于完整的二叉树,最后访问的节点对于中序和前序遍历总是相同的。即使对于完整的二叉树,上述情况都不成立。
选项(a)是不正确的,因为在中序遍历中访问的最后一个节点是右子节点,而在后序遍历中访问的最后一个节点是根。
选项(c)是不正确的,因为前序遍历中访问的最后一个节点是右子节点,而后序遍历中访问的最后一个节点是根。
对于选项 (b),请参阅以下计数器示例。感谢 Hunaif Muhammed 提供正确的解释。
1
/ \
2 3
/ \ /
4 5 6
Inorder traversal is 4 2 5 1 6 3
Preorder traversal is 1 2 4 5 3 6
这个问题的测验