文章

63

粉丝

0

获赞

0

访问

2.5k

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

(1)输出的是每一个左子树的结果和右子树的结果进行运算

(2)

string f(BTree *a){

 if(a!=NULL){

  return f(a.left)+a.data+f(a.right);

}

}


评分及理由

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

得分:1分

理由:学生只给出了"输出的是每一个左子树的结果和右子树的结果进行运算"这样模糊的描述,没有明确说明使用中序遍历策略,也没有提及括号添加的必要性和规则。虽然提到了左右子树运算,但缺乏对表达式树转换中缀表达式的关键要素(操作符优先级、括号处理)的说明,设计思想不完整。

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

得分:2分

理由:代码存在多处严重问题:

  1. 语法错误:使用了C++的string类型但函数声明不完整
  2. 逻辑错误:没有处理括号添加,无法保证运算优先级正确
  3. 语法错误:a.left和a.right应该是a->left和a->right
  4. 逻辑错误:对空指针的处理不完善,缺少叶结点判断
  5. 逻辑错误:没有考虑根结点和叶结点不需要括号的情况
虽然代码体现了中序遍历的基本思路,但由于存在上述严重问题,只能给予基础分。

题目总分:1+2=3分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发