文章
63
粉丝
0
获赞
0
访问
3.2k
1.中序遍历表达式树,当前结点为运算符号且不为根节点,遍历左孩子前输出左括号;当前结点为运算符号且不为根节点,遍历右孩子后输出右括号
2.
void coutExpression(node* root){
//从根节点开始遍历
MidOrder(root,0);
}
void MidOrder(node *root,int floor){
if(root!=null){
// 当前结点为运算符号且不为根节点,遍历左孩子前输出左括号
if((root.data=='+'||'-'||'*'||'/')&&(floor!=0)) {
cout<<'(';
}
MidOrder(root.left,floor++);
cout<<root.data;
MidOrder(root.right,floor++);
// 当前结点为运算符号且不为根节点,遍历右孩子后输出右括号
if((root.data=='+'||'-'||'*'||'/')&&(floor!=0)) {
cout<<')';
}
}
}
评分及理由
(1)得分及理由(满分5分)
得分:2分
理由:学生基本理解了需要中序遍历表达式树,并认识到需要添加括号来反映计算次序。但是设计思想存在明显问题:
(2)得分及理由(满分10分)
得分:4分
理由:代码实现存在多处逻辑错误:
root.data=='+'||'-'||'*'||'/'写法错误,应该分别判断fl...
登录后发布评论
暂无评论,来抢沙发