GESP 六级 · GESP 202603 C++ 六级 第 18 题

判断题 · 答案 B

← 整套速查表 GESP 六级 全部真题

题目

对如下结构的树,执行 travel 函数,输出结果是 $1\ 2\ 3\ 4\ 5$。

    1
   / \
  2   3
 / \
4   5
struct Node {
    int val;
    Node *left, *right;
    Node(int v) : val(v), left(nullptr), right(nullptr) {}
};

void travel(Node* root) {
    if (!root) return;
    stack<Node*> s;
    s.push(root);

    while (!s.empty()) {
        Node* cur = s.top(); s.pop();
        cout << cur->val << " ";

        if (cur->right) s.push(cur->right);
        if (cur->left) s.push(cur->left);
    }
}
答案:B

解题思维

模拟程序执行过程,逐行跟踪变量变化,特别关注循环边界和递归终止条件。

常见错误

模拟执行时注意:① 循环变量的起始和终止值;② 递归的边界条件;③ 数据类型转换和精度问题。

详细解析(节选)

【考点】二叉树遍历|栈操作|遍历顺序

🎯 考纲定位

GESP 六级《数据结构与算法》模块,命题人专门卡住"栈的后进先出特性与树遍历顺序关系"这个认知盲区。六级前考生往往只记结论,看到树就写递归前序,却不会用栈模拟,遇到改入栈顺序的题就懵。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断