文章
509
粉丝
0
获赞
1
访问
151.8k

评分及理由
(1)得分及理由(满分3分)
得分:3分。学生给出了基于递归遍历(先序或后序)的基本设计思想,明确指出WPL是叶结点权值与深度乘积之和,并描述了递归函数传参(root和depth)以及递归过程中深度加一、遇到叶结点时计算贡献的思路。这与标准答案中先序遍历的设计思想一致,因此得满分。
(2)得分及理由(满分4分)
得分:4分。学生正确给出了二叉树结点的数据类型定义,包含weight、left、right三个域,结构体命名合理,与题目要求的二叉链表存储一致,因此得满分。
(3)得分及理由(满分6分)
得分:5分。学生给出了递归函数实现,整体思路正确,但在第2次识别结果的代码中,递归调用时传递的深度参数为depth + 1,这是正确的;然而在函数开头的注释和逻辑中,并未显式处理非叶结点但某一子树为空的情况,但代码通过判断root == NULL返回0已经隐含处理。主要问题在于:函数getWPL的返回值是整型,但未考虑如何从根节点开始调用(即未给出外层调用接口,如WPL(root) { return getWPL(root, 0); }),且标准答案中强调使用static变量或层次遍历,学生的方法虽然正确但未完整呈现调用入口,扣1分。此外,代码逻辑正确,能正确计算WPL。
题目总分:3+4+5=12分
登录后发布评论
暂无评论,来抢沙发