在這裡說一下二叉樹的三種遍歷(前序,中序,後序)
正文:前序遍歷:是指先從根開始,再依次找尋左子結點、右子結點。
學習時的經驗就是「看圖學習」
第乙份圖:
這樣看來:
1.先找最基本的根結點(詞窮),這裡是a。
2.接著找以a為根結點的左子結點,這裡是b。
3.而以b為根結點也會出現左右結點,這就又有了乙個左結點d,d再連e(d-e)。
4.去找以b為根結點的右結點(為f-g)
5.以b為根結點的左右結點已找完,那便找上一層,也就是以a為根結點的右結點(b為左結點),便為c。
綜上所述,上圖的前序遍歷為(a-b-d-e-f-g-c)
中序遍歷:其實差不多(呵),就是把「根結點-左結點-右結點」的順序換為「左結點-根結點-右結點」
以上圖為例(再貼波圖):
中序遍歷為:d-e-b-g-f-a-c
注意點就是從下向上,就是從e-d,從子結點到結點。(個人認為差別就這一點,如果不懂再細述)
——————————
後序遍歷:和以上兩種進行區別便是先從左子結點開始,在去找右子結點,最後去找根結點。
後序遍歷為:e-d-g-f-b-c-a
再貼乙個層序遍歷吧:
其實層序遍歷顧名思義就是一層一層的訪問,一層訪問結束再訪問下一層(注意,這裡指的是整顆樹,不再單純指某子樹了)
那麼以上面那張圖為例
最後再貼上讓我豁然開朗那個圖(侵刪)
二叉樹的三種遍歷
重新又看了一遍二叉樹 binary tree 發現很多東西自己還沒有弄明白,原來三種遍歷方式還不是自己想象中的那樣 前序遍歷 preorder 是先輸出自己,然後左,最後右。中序遍歷 inorder 是先左,再輸出自己,最後右。後序遍歷 postorder 是先左,再右,最後輸出自己。所謂的xx遍歷...
二叉樹的三種遍歷
二叉樹是n n 0 個節點的有限集合,它或者是空樹 n 0 或者是有乙個根節點及兩顆不相交的且分別稱為左 右子樹的二叉樹所組成。可見,二叉樹同樣具有遞迴性質。特別需要注意的是,儘管樹和二叉樹的概念之間有許多聯絡,但它們是兩個不同的概念,樹和二叉樹之間最主要的區別是 二叉樹結點的子樹要區分左子樹和右子...
二叉樹的三種遍歷
1.先序遍歷 按照根節點 左子樹 右子樹的順序訪問二叉樹 先序遍歷 1 訪問根節點 2 採用先序遞迴遍歷左子樹 3 採用先序遞迴遍歷右子樹 注 每個節點的分支都遵循上述的訪問順序,體現 遞迴呼叫 先序遍歷結果 a bdfe cghi 思維過程 1 先訪問根節點a,2 a分為左右兩個子樹,因為是遞迴呼...