两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

1. 簡介

依舊是下面的這三句話:

先序遍歷:根左右

中序遍歷:左根右

后序遍歷:左右根

 

        后序遍歷就是在訪問二叉樹的結(jié)點的時候采用,先左,再右,再根的方式,對于一個最簡單的訪問而言如圖,先訪問左節(jié)點B,之后訪問右結(jié)點C,最后訪問根節(jié)點A,后序遍歷的訪問順序就是BCA

二叉樹后序遍歷

     然而實際上的遍歷訪問并沒有那么簡單,往往是多個結(jié)點相互嵌套構(gòu)成的二叉樹,

    如圖所示,在訪問遍歷一開始的時候,先訪問左節(jié)點B再訪問右結(jié)點C最后訪問A,但由于B結(jié)點其中也包含了新的結(jié)點,就猶如之前介紹的那樣,在面對處理的結(jié)點后還存在有與之相聯(lián)的結(jié)點的時候,需要優(yōu)先處理其的子結(jié)點,這也是“遞歸”的基本思路,因此,由于B屬于DG的根結(jié)點,我們相較于B,應(yīng)該先訪問D結(jié)點,而又由于D結(jié)點屬于EF的根結(jié)點,我們就又變成先訪問E結(jié)點,E屬于最末端了,根據(jù)后序遍歷左右根的訪問順序,依次生成EFDGB作為一個整體,接著我們需要訪問C,由于C又是^HC之中的根結(jié)點,我們先訪問這個空結(jié)點,又因為其是一個空的結(jié)點,我們會跳過,就變成了HC的訪問順序,那么最后在匯總的時候EFDGB作為左節(jié)點,HC作為右結(jié)點,A作為根結(jié)點,完成我們最終的遍歷順序EFDGBHCA。

二叉樹的后續(xù)遍歷

2.代碼實現(xiàn)

續(xù)上文的代碼,巧妙利用遞歸,與前文的代碼只有一個順序的區(qū)別:

//樹的后序遍歷 Post-order traversal
void postorder(Node* node){
    if (node != NULL)
    {
        inorder(node->left);
        inorder(node->right);
        printf("%d ",node->data);
    }
}


3. 后綴表達式(逆波蘭式)

逆波蘭式與波蘭式不同,波蘭式采用先序遍歷的方式遍歷訪問我們的公式順序,常規(guī)式則就是我們熟悉的中序方式,而逆波蘭式采用后續(xù)遍歷的方式進行訪問。

如圖,為常規(guī)表達式:(a+b)*c

       其二叉樹的表現(xiàn)形式為:后綴表達式(逆波蘭式)


而逆波蘭式的表達方式就是ab+c* ,相較于波蘭式,逆波蘭式則就是將符號進行后移,其在計算機中的讀取運算概念也符合棧的思路,因此沒有什么特殊的不同,在考研/軟考/算法競賽中,比較常見的一類提醒就是波蘭式,常規(guī)表達式,逆波蘭式之間的互相轉(zhuǎn)化和基本數(shù)學(xué)運算。


4. 相關(guān)問題

l  二叉樹的遍歷習(xí)題:1734題

二叉樹的后序遍歷問題

請回答這一顆樹的后序遍歷是多少?


二叉樹的后序遍歷問題2

請回答這一顆樹的后序遍歷是多少?

l  請回答((a+b)+(c+d))*e作為轉(zhuǎn)換成后綴表達式如何,如何表示。


作業(yè):
1734 二叉樹遍歷
點贊(1)

C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點擊了解:

一點編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進階課程

從零到寫出一個爬蟲的Python編程課程

只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程

手把手講解近五年真題的藍橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運行等待時間)