0
点赞
收藏
分享

微信扫一扫

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

大雁f 2022-04-13 阅读 59
数据结构


输出的等价中缀表达式分别为(a+b)*(c*(-d))和(a*b)+(-(c-d))。 二叉树结点定义如下:

1

2

3

4

5

typedef struct node{ 

    char data[10]; //存储操作数或操作符 

    struct node *left, *right; 

}

BTree;

要求: 

 (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;
}
举报

相关推荐

0 条评论