2017 408算法題


思想:表達式樹中序遍歷加上必要括號即為中綴表達式。表達式最外層(對應根節點)即操作數(即為葉節點)不需要添加括號

代碼實現:

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(")");//若有子表達式加一層括號
    }
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM