前序 中序 後序遍歷

2021-09-30 12:10:27 字數 1009 閱讀 2111

先序遍歷也叫做

先根遍歷、

前序遍歷,可記做根左右(二叉樹父結點向下先左後右)。

首先訪問根結點然後遍歷左子樹,最後遍歷右子樹。在遍歷左、右子樹時,仍然先訪問根結點,然後遍歷左子樹,最後遍歷右子樹,如果二叉樹為空則返回。

例如,下圖所示二叉樹的遍歷結果是:abdecf

中序遍歷首先遍歷左子樹,然後訪問根結點,最後遍歷右子樹。在遍歷左、右子樹時,仍然先遍歷左子樹,再訪問根結點,最後遍歷右子樹。即: 若

二叉樹為空則結束返回

否則:

(1)中序遍歷左子樹。

(2)訪問根結點。

(3)中序遍歷右子樹。

注意的是:遍歷左右子樹時仍然採用中序遍歷方法。

如右圖所示

二叉樹中序遍歷結果:dbeafc

中序遍歷的

時間複雜度為:o(n)。

如果一棵

二叉排序樹的節點值是數值,中序遍歷的結果為公升序排列的

陣列。可以利用該性質檢測一棵樹是否為二叉排序數。

已知前序遍歷和後序遍歷,不能確定唯一的中序遍歷。

後序遍歷首先遍歷左子樹,然後遍歷右子樹,最後遍歷訪問根結點,在遍歷左、右子樹時,仍然先遍歷左子樹,然後遍歷右子樹,最後遍歷根結點。即:

若二叉樹為空則結束返回,

否則:

(1)後序遍歷左子樹

(2)後序遍歷右子樹(3)訪問根結點

如右圖所示

二叉樹後序遍歷結果:debfca

已知前序遍歷和中序遍歷,就能確定後序遍歷。

無論是先序遍歷,中序遍歷,後序遍歷,都將看做乙個個子樹

比如先序遍歷上述圖中的樹,vlr,v為a,此時再講l左子樹看做一棵樹進行先序遍歷,vlr,此時v為b,l、r分別為d、e,所以先序遍歷的左子樹順序為bde,同理可得右子樹為cf,綜述,上述樹的先序遍歷為abdecf

前序中序後序遍歷

一道hulu的筆試題 how i wish yesterday once more 假設有棵樹,長下面這個樣子,它的前序遍歷,中序遍歷,後續遍歷都很容易知道。preorder gdafemhz inorder adefghmz postorder aefdhzmg 現在,假設僅僅知道前序和中序遍歷,...

前序遍歷 中序遍歷 後序遍歷

只要是搞計算機的,對資料結構中二叉樹遍歷都不陌生,但是如果用到的機會不多那麼就會慢慢淡忘,溫故而之新才是最好的學習方式,現在就重新溫習一下這方面的知識。首先我想先改變這幾個遍歷的名字 前根序遍歷,中根序遍歷,後根序遍歷 前中後本來就是相對於根結點來說的,少乙個字會產生很多不必要的誤解。1.前根序遍歷...

前序遍歷 中序遍歷 後序遍歷

遍歷是針對根節點的 前序遍歷順序 根節點 左子樹 右子樹 中序遍歷順序 左子樹 根節點 右子樹 後序遍歷順序 左子樹 右子樹 根節點 深入一點去理解這個排序順序是這樣的 前序遍歷 首先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。在遍歷左 右子樹時,仍然先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。中...