如何根據(jù)中序遍歷還有后序遍歷的輸出恢復(fù)一個(gè)樹


  1. 后序遍歷最后輸出的永遠(yuǎn)是root節(jié)點(diǎn)永脓。
  2. 中序遍歷喜歡玩之字形螺男,可以很好的區(qū)分左右子樹。
image.png
#include<bits/stdc++.h>
using namespace std;
int postorder[100];
int inorder[100];
struct Node{
   Node*left;
   Node* right;
   int num;
   Node(){
       left=NULL;
       right=NULL;
       num=0;
   }
};
Node *create(int PL,int PR,int IL,int IR){
    if(PL>PR){
        return NULL;
    }
    int i,rt=postorder[PR];
    int Iroot;
    for(i=IL;i<=IR;i++){
        if(rt==inorder[i]){
            Iroot=i;
            //cout<<"Iroot:"<<i<<endl;
            break;
        }
    }
    int ir=i-1;
    int il=i+1;
    Node* root=new Node();
    root->num=rt;
    //cout<<PL<<" "<<ir-IL+PL<<" "<<IL<<" "<<ir-1<<endl;
    //cout<<ir-IL+PL+1<<" "<<PR-1<<" "<<il<<" "<<IR<<endl;
    root->left=create(PL,ir-IL+PL,IL,ir);
    root->right=create(ir-IL+PL+1,PR-1,il,IR);
    return root;
}

void BFS(Node*root){
    queue<Node*>q;
    Node *p;
    q.push(root);
    while(!q.empty()){
        p=q.front();
        q.pop();
        cout<<p->num<<" ";
        if(p->left!=NULL){
            q.push(p->left);
        }
        if(p->right!=NULL){
            q.push(p->right);
        }
    }
}

int main(){
    int i,j,input;
    int Postorder,Inorder;
    scanf("%d",&input);
    for(i=0;i<input;i++){
        scanf("%d",&j);
        postorder[i]=j;
    }
    Postorder=i-1;

    for(i=0;i<input;i++){
        scanf("%d",&j);
        inorder[i]=j;
    }
    Inorder=i-1;
    Node*root=create(0,Postorder,0,Inorder);
    BFS(root);
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末休傍,一起剝皮案震驚了整個(gè)濱河市搭儒,隨后出現(xiàn)的幾起案子沪悲,更是在濱河造成了極大的恐慌获洲,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件殿如,死亡現(xiàn)場(chǎng)離奇詭異贡珊,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)涉馁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門门岔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人烤送,你說我怎么就攤上這事寒随。” “怎么了帮坚?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵牢裳,是天一觀的道長。 經(jīng)常有香客問我叶沛,道長,這世上最難降的妖魔是什么忘朝? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任灰署,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘溉箕。我一直安慰自己晦墙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布肴茄。 她就那樣靜靜地躺著晌畅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪寡痰。 梳的紋絲不亂的頭發(fā)上抗楔,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天,我揣著相機(jī)與錄音拦坠,去河邊找鬼连躏。 笑死,一個(gè)胖子當(dāng)著我的面吹牛贞滨,可吹牛的內(nèi)容都是我干的入热。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼晓铆,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼勺良!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起骄噪,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤尚困,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后腰池,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體尾组,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年示弓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了讳侨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡奏属,死狀恐怖跨跨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情囱皿,我是刑警寧澤勇婴,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站嘱腥,受9級(jí)特大地震影響耕渴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜齿兔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一橱脸、第九天 我趴在偏房一處隱蔽的房頂上張望础米。 院中可真熱鬧,春花似錦添诉、人聲如沸屁桑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蘑斧。三九已至,卻和暖如春须眷,著一層夾襖步出監(jiān)牢的瞬間竖瘾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來泰國打工柒爸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留准浴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓捎稚,卻偏偏與公主長得像乐横,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子今野,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360