📌  相关文章
📜  教资会网络 | UGC NET CS 2018 年 12 月 – II |问题 21(1)

📅  最后修改于: 2023-12-03 15:10:15.886000             🧑  作者: Mango

UGC NET CS 2018 年 12 月 - II

UGS NET CS 2018年12月 - II考试是计算机科学领域的国家资格考试之一。此考试旨在测试考生在计算机科学的各个方面的知识和技能。其中,问题21是关于数据结构和算法方面的考题。

问题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。

结论

本题目考察了我们对二叉树遍历算法的理解,除了掌握二叉树的遍历算法,我们还需要理解二叉树的结构和节点操作等相关知识。这是程序员必备的基本技能,也是大家应该注重学习的基础考题之一。