文章
75
粉丝
78
获赞
0
访问
4.1k
一-'一一一.一
评分及理由
(1)得分及理由(满分4分)
得分:2分
理由:学生答案提到了利用中序遍历的思想,并正确指出顺序存储下左右子树的下标计算(2i+1和2i+2),这是正确的设计思想。但是,其描述不完整且存在明显错误:①“判断根结点值是否大于左子树”表述不准确,二叉搜索树要求根结点大于左子树所有结点、小于右子树所有结点,而非仅直接比较左右孩子;②“若内聚则为二叉搜索树”语义不明。由于给出了部分正确思路,但关键性质描述错误,扣2分。
(2)得分及理由(满分9分)
得分:2分
理由:学生尝试用递归中序遍历实现,但代码存在严重逻辑错误:
1. 函数定义混乱,出现了两个同名函数inorder,且参数和返回值不一致,无法正常编译执行。
2. 变量temp的初始化“Min - INT_MAX”无意义,且temp的作用域和更新逻辑错误,无法正确记录中序遍历前驱值。
3. 递归调用逻辑错误:第一个inorder函数中递归调用前未保存前驱值,直接比较T->SqBitNode[2n+1]与temp,而temp未更新;第二个inorder函数中递归调用顺序和下标计算有误(从1开始且使用i-1)。
4. 整体算法不能正确判断二叉搜索树,仅能检查局部父子关系,且递归终止条件不完整。
由于代码框架体现了中序遍历的递归结构,并正确使用了顺序存储的下标关系,但核心逻辑完全错误,故给予少量分数(2分)。
题目总分:2+2=4分
登录后发布评论
暂无评论,来抢沙发