文章
118
粉丝
0
获赞
0
访问
47.8k

评分及理由
(1)得分及理由(满分5分)
得分:2分
理由:学生答案中提到了使用中序遍历的思想,这与标准答案一致,这是正确的。但是,学生的基本设计思想存在严重逻辑错误。学生提出"若遇到没有左子树的结点则加左括号,若没有右子树则加右括号",这种加括号策略是错误的。在表达式树中,加括号的目的是为了保证运算优先级,应该根据当前结点在树中的深度(层次)来决定是否需要加括号,而不是简单地根据是否有左右子树来判断。这种错误思路会导致输出的中缀表达式括号使用完全错误。
(2)得分及理由(满分10分)
得分:3分
理由:学生代码实现了中序遍历的框架,这是正确的。但是具体的加括号逻辑存在严重错误:
1. 加括号的条件判断错误:基于是否有左右子树来加括号,而不是基于深度
2. 加括号的位置错误:左括号加在遍历左子树前,右括号加在遍历右子树后,这与表达式树的要求不符
3. flag参数的使用逻辑混乱:flag=1表示左遍历,flag=2表示右遍历,这种设计无法正确反映表达式结构
4. 缺少对根结点深度的处理:没有考虑根结点不需要加括号的情况
虽然代码框架基本正确,但由于核心逻辑存在根本性错误,只能给予少量分数。
题目总分:2+3=5分
登录后发布评论
暂无评论,来抢沙发