思想:表達式樹中序遍歷加上必要括號即為中綴表達式。表達式最外層(對應根節點)即操作數(即為葉節點)不需要添加括號
代碼實現:
typedef struct Node{ char data[10]; struct node *left,*right; }BTree; void BtreetToE(BTree *root) { BtreeToExp(root,1); } void BtreeToExp(BTree *root,int deep) { if(root==Null)return;//空節點返回 else if(root->left==NULL&&root->right==Null) printf("%s",root->data);//輸出操作數,不加括號 else{ if(deep>1 printf("("));//若有子表達式加一層括號 BtreeToExp(root->left,deep+1); printf("%s",root->data); BtreeToExp(root->right,deep+1); if(deep>1)printf(")");//若有子表達式加一層括號 } }