文章
263
粉丝
1
获赞
100
访问
48.9k

评分及理由
(1)得分及理由(满分3分)
得分:2分
理由:学生提出了使用递归遍历(中序遍历)并传递深度参数来计算WPL的基本思路,这与标准答案中先序遍历的思想相似,都是通过递归遍历计算叶子节点的深度与权值之积。但学生明确说明使用"中序遍历",而中序遍历在处理叶子节点时确实也能访问到所有节点,因此思路基本正确。扣1分是因为没有明确指出递归的终止条件和完整的遍历逻辑描述不够清晰。
(2)得分及理由(满分4分)
得分:4分
理由:学生的二叉树结点数据类型定义完全正确,包含了weight、left和right三个域,使用typedef定义了结点类型和指针类型,与标准答案一致。
(3)得分及理由(满分6分)
得分:2分
理由:算法实现存在以下严重逻辑错误:
1. 在递归函数内部定义了局部变量wpl并初始化为0,这会导致每次递归调用都会重置wpl,无法正确累加所有叶子节点的贡献。
2. 函数没有返回值,只是打印结果,这不符合算法设计要求。
3. 中序遍历顺序(左-根-右)虽然能访问所有节点,但wpl的累加逻辑存在根本性错误。
4. 缺少对空树的处理,当root为NULL时直接返回,但wpl的值无法正确传递。
由于这些核心逻辑错误,严重影响了算法的正确性,因此扣4分。
题目总分:2+4+2=8分
登录后发布评论
暂无评论,来抢沙发