文章

266

粉丝

1101

获赞

1683

访问

136w

头像
【2022年】408计算机统考真题模拟考试 - 第41题答案笔记
数据结构
发布于2025年5月24日 18:43
阅读数 39

计算机考研408统考历年真题及答案解析

遍历每个元素及其孩子结点,若左右孩子均存在,则比较根该结点及其孩子结点值的大小,不满足左孩子值 < 根结点值 < 右孩子值,则直接返回 false;若左孩子存在或右孩子,重复上述判断。

bool function (SqBiTree T) {
for (int i = 0; i < T.ElemNum; ++i) {
if (T.SqBiTnode[2 * i + 1] != -1 && T.SqBiTnode[2 * i + 2] != -1) {
if (T.SqBiTnode[2 * i + 1] > T.SqBiTnode[i] || T.SqBiTnode[i] > T.SqBiTnode[2 * i + 2])
return false;
}
else if (T.SqBiTnode[2 * i + 1] == -1 && T.SqBiTnode[2 * i + 2] != -1) {
if (T.SqBiTnode[i] > T.SqBiTnode[2 * i + 2])
return false;
}
else if (T.SqBiTnode[2 * i + 2] == -1 && T.SqBiTnode[2 * i + 1] != -1) {
if (T.SqBiTnode[2 * i + 2] < T.SqBiTnode[i])
return false;
}
}
return true;
}


评分及理由

(1)得分及理由(满分4分)

得分:3分

理由:学生的设计思想基本正确,通过遍历每个元素及其孩子结点来判断是否满足二叉搜索树的性质。但未考虑到所有情况,例如子树中的结点需要满足整个子树的上下界限制,而不仅仅是直接孩子结点的比较。因此扣1分。

(2)得分及理由(满分9分)

得分:6分

理由:学生的代码实现了基本的设计思想,但在逻辑上有错误。例如,在判断左孩子或右孩子存在时,代码中的条件判断不完整,且未考虑到子树中的结点需要满足整个子树的上下界限制。此外,代码中的变量名有误写(如T.SqBiTnode应为T.SqBiTNode),但由于可能是识别错误,不扣分。因此扣3分。

题目总分:3+6=9分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发