表达式树的中序序列加上必要的括号即为等价的中缀表达式。可基于中序遍历得出。
void BtreeToE(BTree *root){
BtreeToExp(root,1);
}
void BtreeToExp(BTree root,int deep){
if(root ==NULL) return;
else if(root->lchild == NULL && root->rchild == NULL){
printf("%s",root->data);//输出操作数,不加括号
}
else{
if(deep>1) printf("(");//有子表达式 加一层括号
BtreeToExp(root->lchild,deep+1);
printf("%s",root->data);
BtreeToExp(root->rchild,deep+1);
if(deep>1) printf(")");
}
}