文章
210
粉丝
21
获赞
1
访问
7.6k

评分及理由
(1)得分及理由(满分3分)
得分:0分
理由:学生的基本设计思想存在逻辑错误。题目要求计算的是"带权路径长度",即每个叶子结点的权值乘以该叶子结点的深度(从根结点到该叶子结点的路径长度)。学生的思路中,sum是累加路径上所有结点的权值,而不是记录深度,这会导致计算结果错误。例如,对于深度为d的叶子结点,正确的WPL贡献应该是weight×d,但按照学生的思路,贡献的是路径上所有结点权值之和,这与题目要求不符。
(2)得分及理由(满分4分)
得分:2分
理由:学生的数据类型定义基本正确,使用了结构体并包含了left、right指针和weight域。但存在以下问题:
1. 结构体名称使用了"List",这不符合二叉树结点的命名惯例,应该使用更具描述性的名称如"BiTNode"
2. 指针类型使用了"LNode"而不是结构体自身类型,这是语法错误
3. 缺少typedef定义别名
由于核心结构正确但存在明显的语法和命名问题,给予部分分数。
(3)得分及理由(满分6分)
得分:0分
理由:学生的算法实现基于错误的设计思想。在递归函数中:
- 参数sum传递的是路径上权值的累加和,而不是深度
- 在叶子结点处,将sum累加到wpl中,这计算的是根到叶子路径上所有结点权值之和,而不是权值乘以深度
- 递归调用时,传递的是sum + T->weight,这继续累积权值而不是增加深度
这些逻辑错误导致算法完全不能正确计算WPL,因此不得分。
题目总分:0+2+0=2分
登录后发布评论
暂无评论,来抢沙发