文章
26
粉丝
93
获赞
1
访问
1.4k
评分及理由
(1)得分及理由(满分3分)
学生答案的基本设计思想是通过递归深度优先搜索(DFS)计算WPL,思路正确:递归遍历二叉树,记录当前深度,遇到叶子节点时累加权值与深度的乘积。但答案中未明确描述递归参数传递深度的细节,且存在函数定义嵌套的问题(第一次识别中DeepSearch函数定义在WPL函数内部,不符合C语言语法)。考虑到思路核心正确,但描述不完整,扣1分。得分:2分。
(2)得分及理由(满分4分)
学生答案未给出二叉树结点的数据类型定义。题目要求明确给出定义,但作答中缺失此部分。根据标准答案,需定义包含weight、lchild和rchild的结构体。此处完全未提供,扣4分。得分:0分。
(3)得分及理由(满分6分)
学生尝试用递归DFS实现算法,但代码存在多处错误:
1. 函数返回类型错误:WPL函数应返回int,但学生定义为void(第一次识别)或未完整定义(第二次识别)。
2. 递归函数DeepSearch的返回值处理错误:递归非叶子节点时,返回左右子树递归结果之和,但未累加Sum(参数传递为值传递,实际未修改外部Sum)。
3. 拼写错误:`T->wight`应为`T->weight`(但根据误写规则不扣分)。
4. 递归终止条件不完整:仅处理叶子节点,非叶子节点应继续递归,但返回语句使用了加法(可能意图正确但逻辑错误,导致重复计算)。
5. 未处理空树情况(可能崩溃)。
代码逻辑与正确DFS实现有较大偏差,扣5分(因核心递归思路存在但执行错误)。得分:1分。
题目总分:2+0+1=3分
登录后发布评论
暂无评论,来抢沙发