📅  最后修改于: 2023-12-03 15:10:15.886000             🧑  作者: Mango
UGS NET CS 2018年12月 - II考试是计算机科学领域的国家资格考试之一。此考试旨在测试考生在计算机科学的各个方面的知识和技能。其中,问题21是关于数据结构和算法方面的考题。
对以下二叉树执行完整的遍历(采用二叉树链式表示),输出的序列是?
struct Node {
int data;
Node* left;
Node* right;
};
Node* root = new Node;
root->data = 1;
root->left = new Node;
root->left->data = 2;
root->left->left = new Node;
root->left->left->data = 4;
root->left->right = new Node;
root->left->right->data = 5;
root->right = new Node;
root->right->data = 3;
root->right->left = new Node;
root->right->left->data = 6;
root->right->right = new Node;
root->right->right->data = 7;
A. 1, 3, 2, 4, 5, 6, 7
B. 4, 2, 5, 1, 6, 3, 7
C. 4, 5, 2, 1, 6, 3, 7
D. 1, 2, 4, 5, 3, 6, 7
我们需要对二叉树进行遍历,常用的遍历方式有三种:前序遍历、中序遍历和后序遍历。在前序遍历中,我们先访问根节点,然后访问左子树,最后访问右子树。在中序遍历中,我们先访问左子树,然后访问根节点,最后访问右子树。在后续遍历中,我们先访问左子树,然后访问右子树,最后访问根节点。
针对本题目,我们需要输出完整遍历序列,因此需要完整遍历整个二叉树,即前序遍历、中序遍历和后序遍历三个序列。根据题目所给代码,我们得到如下前序遍历序列:
1, 2, 4, 5, 3, 6, 7
中序遍历序列:
4, 2, 5, 1, 6, 3, 7
后序遍历序列:
4, 5, 2, 6, 7, 3, 1
因此,我们的答案是:D. 1, 2, 4, 5, 3, 6, 7。
本题目考察了我们对二叉树遍历算法的理解,除了掌握二叉树的遍历算法,我们还需要理解二叉树的结构和节点操作等相关知识。这是程序员必备的基本技能,也是大家应该注重学习的基础考题之一。