文章
305
粉丝
0
获赞
0
访问
64.6k

评分及理由
(1)得分及理由(满分4分)
得分:2分
理由:学生答案的基本思想是:先遍历一次树找到最小绝对值差(mina),再遍历一次树输出所有差值等于mina的结点。这个思路可以解决问题,但不够高效。标准答案利用了二叉搜索树中序有序的性质,在遍历过程中一旦发现差值开始增大就可以提前终止,而学生答案没有利用这一性质,需要两次完整遍历。因此思路基本正确但不够优化,扣2分。
(2)得分及理由(满分8分)
得分:4分
理由:代码存在以下逻辑错误:
1. 全局变量mina的初始化int mina = abs(root->data - k);写在函数外部,但root此时未定义,这是语法错误,会导致编译失败。
2. search和function函数没有递归终止条件(没有判断root==NULL),会导致无限递归或访问空指针。
3. searchX函数中先调用search再输出mina,但mina的初始值不合理,且没有考虑树为空的情况。
4. 输出格式不符合题目要求(题目要求输出绝对值和结点关键字,学生代码只输出结点值)。
由于存在多处逻辑错误,扣4分。
题目总分:2+4=6分
登录后发布评论
暂无评论,来抢沙发