文章
135
粉丝
93
获赞
1
访问
61.3k

评分及理由
(1)得分及理由(满分3分)
得分:3分
理由:学生答案正确描述了使用深度优先搜索(DFS)遍历二叉树,在遍历过程中记录树高(深度),当遇到叶结点时计算该结点的带权路径长度并累加。这与标准答案中基于先序遍历的思想一致,思路正确且完整。
(2)得分及理由(满分4分)
得分:4分
理由:学生正确定义了二叉树结点的数据类型,包含weight、left和right三个域,且left和right指针类型正确。虽然结构体标签命名为TNode和Tree,但这不影响数据结构的正确性,与标准答案中的BiTNode等效。
(3)得分及理由(满分6分)
得分:3分
理由:学生代码存在以下逻辑错误:
1. 在判断叶结点时使用了"root->left == root->right",这个条件只有在左右子树指针相等时才成立,而正确的叶结点判断应该是左右子树都为空(NULL)。这是一个明显的逻辑错误。
2. 递归调用前没有检查子节点是否为空,如果遇到空指针会导致程序崩溃。
3. 代码结构不完整,缺少对根节点为空的处理。
但学生正确实现了DFS遍历框架,深度参数传递和累加逻辑基本正确,因此给予部分分数。
题目总分:3+4+3=10分
登录后发布评论
暂无评论,来抢沙发