文章
88
粉丝
38
获赞
0
访问
2.7k

评分及理由
(1)得分及理由(满分3分)
得分:3分。学生答案给出了使用前序遍历的方法,通过递归遍历每个叶结点并记录深度,然后累加深度与权值的乘积得到WPL。这与标准答案中基于先序遍历的设计思想一致,思路正确且完整。
(2)得分及理由(满分4分)
得分:3分。学生定义了二叉树结点的数据类型,包括weight、left和right指针,但存在以下问题:
- 第一次识别中结构体定义有语法错误(typedef struct LNode* LNode; 重复定义)。
- 第二次识别中结构体定义正确,但缺少了类型别名定义(如BiTNode, *BiTree)。
由于核心结构定义正确,但类型别名缺失,扣1分。
(3)得分及理由(满分6分)
得分:4分。学生给出了基于前序遍历的算法实现,但存在以下逻辑错误:
- 第一次识别中代码不完整,有重复的递归调用语句,且未定义函数返回类型。
- 第二次识别中函数定义为void类型,但WPL计算需要返回值,且使用全局变量wpl不符合题目要求的封装性(标准答案使用static变量或参数传递)。
- 全局变量wpl在多次调用时会导致累加错误,未初始化且无法重置。
由于算法核心逻辑正确(递归遍历和WPL计算),但实现存在封装性和多次调用问题,扣2分。
题目总分:3+3+4=10分
登录后发布评论
暂无评论,来抢沙发