文章
180
粉丝
0
获赞
0
访问
12.6k

评分及理由
(1)得分及理由(满分3分)
学生答案给出了使用先序遍历的基本设计思想:通过递归遍历二叉树,传递层级参数,遇到叶子结点时累加权重与深度的乘积。这与标准答案中基于先序遍历的思路一致,表述清晰。因此得3分。
(2)得分及理由(满分4分)
学生答案定义了二叉树结点的数据类型,包含weight、left和right三个域,与标准答案一致。虽然结构体名称使用了TNode而非BiTNode,但这不影响正确性。因此得4分。
(3)得分及理由(满分6分)
学生答案实现了先序遍历算法,通过全局变量wpl记录结果,在递归函数中判断叶子结点并累加权重与深度的乘积。算法逻辑正确,但存在以下问题:
1. 使用了全局变量wpl,虽然功能正确,但不符合模块化设计原则,可能引起副作用。标准答案使用static变量或参数传递更合理。
2. 函数命名function不够明确,应改为WPL等更具描述性的名称。
3. 缺少对空树的处理,但代码中已有if(T==NULL) return,实际可以处理空树。
鉴于算法核心逻辑正确且能正确计算WPL,扣1分。因此得5分。
题目总分:3+4+5=12分
登录后发布评论
暂无评论,来抢沙发