请设计一个算法,将给定的表达式树(二叉树)转换为等价的中缀表达式(通过括号反映操作符的 计算次序)并输出。例如,当下列两棵表达式树作为算法的输人时
输出的等价中缀表达式分别为(a+b)*(c*(-d))和(a*b)+(-(c-d))。 二叉树结点定义如下:12345typedef struct node{char data[10]; //存储操作数或操作符struct node *left, *right;}BTree;要求:(1)给出算法的基本设计思想。(2)根据设计思想,采用 C ...
·

输出的等价中缀表达式分别为(a+b)*(c*(-d))和(a*b)+(-(c-d))。 二叉树结点定义如下:
|
1 2 3 4 5 |
|
要求:
(1)给出算法的基本设计思想。
(2)根据设计思想,采用 C 或 C++语言描述算法,关键之处给出注释。
void Inorder(BTree root)
{
if(root==null)return;
if(root->left!=null||root->right!=null)
{
cout<<'(';
inorder(root->left);
cout<<root->data;
inorder(root->right);
cout<<')';
}
else cout<<root-data;
}
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)