文章

188

粉丝

0

获赞

0

访问

55.1k

头像
2022年(408)计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2025年12月10日 15:16
阅读数 196


评分及理由

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

得1分。学生的基本设计思想是遍历数组,对每个结点检查其左孩子值小于该结点值且右孩子值大于该结点值。这个思路存在严重缺陷:
1. 二叉搜索树的要求是左子树所有结点值 ≤ 当前结点值 ≤ 右子树所有结点值,而不仅仅是直接左右孩子的关系。学生的方法只能检查直接父子关系,无法检查整个子树的范围,因此逻辑错误。
2. 遍历范围设定为 ⌈MAX_SIZE/2⌉-1 也不正确,因为实际结点数由 ElemNum 决定,且需要考虑空结点(-1)的情况。
由于思路存在根本性错误,仅给1分作为对部分正确认识(如孩子下标计算)的鼓励。

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

得2分。根据设计思想写的代码同样存在上述逻辑错误:
1. 代码只检查每个结点与其直接左右孩子的大小关系,不满足二叉搜索树的完整定义。
2. 循环条件使用 a = (MAX_SIZE+1)/2-1 不合理,应该基于实际结点数 ElemNum 或动态判断。
3. 代码中使用了未定义的变量 ElemNum(应为结构体成员),且函数参数仅为数组,未传递结构体,无法获取 ElemNum。
4. 最后判断 b == ElemNum 才能返回 true,但循环中一旦不满足条件就返回 false,b 实际上只会统计满足条件的结点数,逻辑矛盾。
由于代码核心逻辑错误,但实现了部分下标计算和比较,给2分。

题目总分:1+2=3分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发