文章
782
粉丝
21
获赞
1
访问
100.2k

评分及理由
(1)得分及理由(满分4分)
学生答案的基本设计思想是遍历每个结点,检查当前结点值是否小于左孩子值或大于右孩子值,若违反则返回false。这种思路在二叉搜索树的局部检查上是正确的,即每个结点需要大于左子树所有结点、小于右子树所有结点。但学生的实现方法存在缺陷:只检查直接左右孩子,没有检查整个子树,且没有考虑空结点(用-1表示)的情况。不过基本思想正确,但不够完整。扣1分。
得分:3分
(2)得分及理由(满分9分)
学生代码实现存在以下问题:
1. 使用T.SqBiTNode.length不正确,应为T.ElemNum,这是明显的逻辑错误。
2. 只检查直接左右孩子,没有递归检查整个子树,无法正确判断二叉搜索树(例如右孩子的左子树可能小于当前结点)。
3. 没有处理空结点(-1)的情况,直接比较可能导致越界或错误比较。
4. 数组索引i*2+1和i*2+2可能越界,没有边界检查。
这些逻辑错误导致算法无法正确工作,扣分较多。
得分:2分
题目总分:3+2=5分
登录后发布评论
暂无评论,来抢沙发