文章
59
粉丝
0
获赞
1
访问
12.1k
看2017年的算法题,我的思路是
(1)等价中缀表达式即为原二叉树的中序遍历序列,仅需要对二叉树进行中序遍历即可得到结果,每次调用时传递节点在数组中的对应位置
(2)
int i=1;//设数组从1开始存储数据
void MidOrder(BTree root,int i)
{
if(root!=NULL)
{
if(root->left!=NULL) MidOrder(root->left,2i);
if(root->left==NULL){cout<<"("<<data[2i]}//访问到左子树叶子节点时,输出数组
cout<<data[i];
if(root->right==NULL)MidOrder(root->right,2i+1)
if(root->right==NULL)cout<<data[2i+1]<<")";
}
}
评分及理由
(1)得分及理由(满分5分)
得分:3分
理由:学生的设计思想提到了中序遍历,这是正确的,但忽略了关键点——需要根据操作符的位置添加括号以确保计算顺序正确。学生没有明确说明何时需要添加括号,仅简单提到中序遍历,因此扣2分。
(2)得分及理由(满分10分)
得分:4分
理由:
题目总分:3+4=7分
登录后发布评论
暂无评论,来抢沙发