题目编号
语言
全部语言
等级
全部等级
知识点
选择知识点 (0)
找到 1260 道单选题
EXY-SC-1050
第 451 题

在上题的树中搜索数值 $3$ 时,采用深度优先搜索一共比较的节点数为( )。

A

$2$

B

$3$

C

$4$

D

$5$

语言: C++
GESP真题 六级
2024.6
单选题号: 15
EXY-SC-1049
第 452 题
同上题中的二叉树,阅读以下二叉树的深度优先搜索代码:
#include <iostream>
#include <stack>
 
using namespace std;
 
// 非递归深度优先搜索(DFS)
TreeNode* dfs(TreeNode* root, int a) {
    if (root == nullptr) return nullptr;
 
    stack<TreeNode*> stk;
    stk.push(root);
 
    while (!stk.empty()) {
        TreeNode* node = stk.top();
        stk.pop();
        if (node->val == a)
            return node;
 
        cout << node->val << " "; // 访问当前节点
 
        if (node->right) stk.push(node->right); // 先压入右子节点
        if (node->left) stk.push(node->left); // 再压入左子节点
    }
    return nullptr;
}
使用以上算法,在二叉树搜索数值 $20$ 时,可能的输出是( )。
A
5 2 -4 3 17 9
B
-4 2 3 5 9 17
C
5 2 17 -4 3 9
D
以上都不对
语言: C++
GESP真题 六级
2024.6
单选题号: 14
EXY-SC-1048
第 453 题

阅读以下二叉树的广度优先搜索代码:

#include <iostream>
#include <queue>
 
using namespace std;
 
// 二叉树节点的定义
struct TreeNode {
    int val;
    TreeNode* left;
    TreeNode* right;
    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
 
// 宽度优先搜索(BFS)迭代实现
TreeNode* bfs(TreeNode* root, int a) {
    if (root == nullptr) return nullptr;
 
    queue<TreeNode*> q;
    q.push(root);
 
    while (!q.empty()) {
        TreeNode* node = q.front();
        q.pop();
 
        if (node->val == a)
            return node;
 
        cout << node->val << " "; // 先访问当前节点
 
        if (node->left) q.push(node->left); // 将左子节点入队
        if (node->right) q.push(node->right); // 将右子节点入队
    }
    return nullptr;
}

使用以上算法,在以下这棵树搜索数值 $20$ 时,可能的输出是( )。

A

5 2 -4 3 17 9

B

-4 2 3 5 9 17

C

5 2 17 -4 3 9

D

以上都不对

语言: C++
GESP真题 六级
2024.6
单选题号: 13
EXY-SC-1047
第 454 题

青蛙每次能跳 $1$ 或 $2$ 步,下面代码计算青蛙跳到第 $n$ 步台阶有多少种不同跳法。则下列说法,错误的是( )。

int jump_recur(int n) {
    if (n == 1) return 1;
    if (n == 2) return 2;
    return jump_recur(n - 1) + jump_recur(n - 2);
}
 
int jump_dp(int n) {
    vector<int> dp(n + 1); // 创建一个动态规划数组,用于保存已计算的值
    // 初始化前两个数
    dp[1] = 1;
    dp[2] = 2;
    // 从第三个数开始计算斐波那契数列
    for (int i = 3; i <= n; ++i) {
        dp[i] = dp[i - 1] + dp[i - 2];
    }
    return dp[n];
}
A

函数 jump_recur() 采用递归方式。

B

函数 jump_dp() 采用动态规划方法。

C

当 $n$ 较大时,函数 jump_recur() 存在大量重复计算,执行效率低。

D

函数 jump_recur() 代码量小,执行效率高。

语言: C++
GESP真题 六级
2024.6
单选题号: 12
EXY-SC-1046
第 455 题

在求解最优化问题时,动态规划常常涉及到两个重要性质,即最优子结构和( )。

A

重叠子问题

B

分治法

C

贪心策略

D

回溯算法

语言: C++
GESP真题 六级
2024.6
单选题号: 11
当前页显示 451 - 455 ,共 1260 道单选题