1. 程式人生 > >二叉樹的三種遍歷方式總結

二叉樹的三種遍歷方式總結

最近學了二叉樹的三種遍歷方式,即前序遍歷,中序遍歷,後序遍歷三種,仔細思索後,在此簡單總結一下。

一.二叉樹示意圖

假設有一顆二叉樹如下:


.遍歷分析

每一顆二叉樹由根節點,左子樹,右子樹三個部分組成,規定先遍歷左子樹,再遍歷右子樹,這樣一來就有了三種遍歷方式,按照遍歷根節點的先後順序來劃分,根->左->右方式就是前序遍歷,->->右方式就是中序遍歷,->->根自然就是後序遍歷了。

需要重點理解的是,對二叉樹的遍歷實際上是一種遞迴,每種方式都是從根節點出發,按照相應的順序進行遍歷,比如前序遍歷,首先訪問根節點,即A,然後訪問左子樹,左子樹的根節點為B

,因此接下來訪問B節點,然後繼續訪問左子樹的左子樹,也即是根節點為D的左子樹,自然,第三個訪問的節點應該是D,然後繼續訪問左子樹,此時第四個左子樹根節點為H(當然也只有一個根節點,沒有左右子樹了),因此第四個訪問的節點為H

然後返回,注意此時根節點為D的子樹已經遍歷完畢,應該遍歷根節點為B的子樹的右子樹,因此第五個訪問的節點為E,訪問E節點以後,以A為根節點的二叉樹的左子樹也已經訪問完畢了,應該訪問其左子樹,按照之前的邏輯,很容易分析出接下來應該依次訪問C、F、G三個節點,至此,二叉樹遍歷完畢,前序遍歷結果為ABDHECFG

下面給出三種不同方式遍歷上圖二叉樹的答案,除了訪問根節點的順序不同以外,分析過程大同小異,就不多贅述了。

1. 前根序遍歷:先遍歷根結點,然後遍歷左子樹,最後遍歷右子樹。

ABDHECFG

2.中根序遍歷:先遍歷左子樹,然後遍歷根結點,最後遍歷右子樹。

HDBEAFCG

3.後根序遍歷:先遍歷左子樹,然後遍歷右子樹,最後遍歷根節點。

HDEBFGCA