文章

7

粉丝

0

获赞

0

访问

3.0k

头像
2025 年 9 月第 1 次 408 月考试卷 - 第41题回答
数据结构
发布于2025年9月20日 16:42
阅读数 435


评分及理由

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

学生答案的基本设计思想是:递归遍历每个节点,判断左右子树是否存在;若存在,则找到左子树的最大值和右子树的最小值,计算当前节点与这两个值的距离(即差值),若距离相等则计数加1。该思路利用了二叉搜索树的性质(左子树最大值即最右节点,右子树最小值即最左节点),与标准答案中的“次优解”一致,且描述清晰。因此得3分。

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

学生提供了两个辅助函数:getLM(获取左子树最大值)和getRM(获取右子树最小值),但未给出完整的countNodes函数实现。缺少主递归遍历逻辑(如先序遍历或DFS遍历)以及计数变量的定义和更新部分。根据标准答案,完整的算法应包括遍历所有节点、判断左右子树存在、调用辅助函数计算差值并比较。由于关键部分缺失,只能根据已提供的代码片段评分。辅助函数逻辑正确(利用二叉搜索树性质查找最值),但整体不完整,因此扣分。得分为5分(辅助函数部分正确,但主逻辑缺失)。

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

学生第一次识别结果为O(n^{-1}),明显错误(可能是识别错误);第二次识别结果为O(n),但未说明理由。根据设计思想(次优解),时间复杂度应为O(nh)(h为树高),因为每个节点需要遍历子树高度来查找最值。学生答案未正确分析时间复杂度,且第二次的O(n)与标准答案不符。因此得0分。

题目总分:3+5+0=8分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发