文章
52
粉丝
0
获赞
0
访问
2.9k
评分及理由
(1)得分及理由(满分3分)
得分:3分
理由:学生的基本设计思想正确,明确提出了使用先序遍历方法,在遍历过程中记录结点层数,并判断叶子结点后计算带权路径长度进行累加。思路与标准答案一致,表述清晰。
(2)得分及理由(满分4分)
得分:2分
理由:学生给出的数据类型定义存在逻辑错误。结构体内部使用了未定义的BiTNode类型指针,正确的定义应该是使用结构体自身的指针类型(struct BiTNode*)。此外,结构体名称和类型别名定义重复,这也是一个错误。但基本结构要素(左右孩子指针和权值)齐全。
(3)得分及理由(满分6分)
得分:4分
理由:算法实现基本正确,采用了先序遍历递归方法,参数传递合理。但存在以下问题:
1. 使用了全局变量WPL,这会导致函数不可重入,属于设计缺陷
2. PreOrder函数中当T为NULL时返回0,但函数实际没有返回值,应该改为void类型
3. func函数中参数为T但调用时使用了root,存在参数不一致的问题
4. 缺少对空树的处理
题目总分:3+2+4=9分
登录后发布评论
暂无评论,来抢沙发