文章

280

粉丝

1

获赞

8

访问

87.0k

头像
2017年计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2025年9月24日 14:55
阅读数 277


评分及理由

(1)得分及理由(满分5分)

得分:3分

理由:学生的基本设计思想提到了使用DFS遍历,并区分运算符和非运算符结点,这符合表达式树转换的基本思路。但是,学生的设计思想中未明确说明何时需要添加括号(只提到根结点无需加括号),而标准答案强调根据深度(或子表达式层次)动态添加括号,这是关键点。学生的思路不够完整,未能准确反映操作符的计算次序,因此扣2分。

(2)得分及理由(满分10分)

得分:4分

理由:学生的代码实现了DFS遍历,但存在以下逻辑错误:
1. 代码中直接比较字符串(如`root->data == '+'`),但`data`是字符数组,应使用字符串比较函数(如`strcmp`),否则逻辑错误。扣3分。
2. 代码对所有运算符结点都添加括号(包括根结点的子表达式),但未考虑深度或运算符优先级,可能导致多余括号(如根结点的直接子表达式本不应加括号)。例如,输入示例1时,输出可能为`((a+b)*(c*(-d)))`而非`(a+b)*(c*(-d))`。扣2分。
3. 函数`Fun`中直接拼接根结点数据和左右子树结果,未处理根结点是否为运算符的情况,若根结点为操作数会出错。扣1分。
优点:基本框架正确,区分了叶结点和分支结点。

题目总分:3+4=7分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发