当前位置: 首页> 文旅> 美景 > 宁波优化网站哪家好_设计资源网_百度下载安装2021_深圳网站设计公司哪家好

宁波优化网站哪家好_设计资源网_百度下载安装2021_深圳网站设计公司哪家好

时间:2025/8/27 2:56:49来源:https://blog.csdn.net/m0_56332819/article/details/142686590 浏览次数:0次
宁波优化网站哪家好_设计资源网_百度下载安装2021_深圳网站设计公司哪家好

请设计一个算法,将给定的表达式树(二叉树)转换为等价的中缀表达式(通过括号反映操作符的计算次序)并输出。例如,当下列两棵表达式树作为算法输入时:

输出的中缀表达式分别为 (a+b)∗(c∗(−d)) 和 (a∗b)+(−(c−d)) 。

二叉树结点的定义如下:

typedef struct node{ char data[10];   // 存储操作数或操作符struct node *left, *right;     
}BTree;

要求:

⑴ 给出算法的基本设计思想。

⑵ 根据设计思想,采用C或C++语言描述算法,关键之处给出注释。

思想:利用中序遍历。除了根结点和叶节点以外,遍历到其他结点时,在遍历左子树之前加上左括号,遍历右子树之后加上右括号。 

代码:

void BtreeInExp(BTreen *T,int depth){//空树if(T==NULL){return ;} //左子树 if(depth>1&&(T->left!=NULL||T->right !=NULL)){printf("(");}if(T->left!=NULL){BtreeInExp(T->left,1+depth);}printf("%s",T->data);//右子树if(T->right!=NULL){BtreeInExp(T->right,1+depth);} if(depth>1&&(T->left!=NULL||T->right !=NULL)){printf(")");}
}
//程序入口 
void BtreeInExp(BTree *T){BtreeInExp(T,1);
} 

关键字:宁波优化网站哪家好_设计资源网_百度下载安装2021_深圳网站设计公司哪家好

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: