EXY-SC-1050
第 451 题
在上题的树中搜索数值 $3$ 时,采用深度优先搜索一共比较的节点数为( )。
语言:
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$ 时,可能的输出是( )。
语言:
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$ 时,可能的输出是( )。

语言:
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];
}
语言:
C++
GESP真题
六级
2024.6
单选题号:
12
EXY-SC-1046
第 455 题
在求解最优化问题时,动态规划常常涉及到两个重要性质,即最优子结构和( )。
语言:
C++
GESP真题
六级
2024.6
单选题号:
11
当前页显示 451 - 455
,共 1260 道单选题