二叉樹的遍歷

二叉樹的遍歷


二叉樹的遍歷方法有

  1. 層序遍歷
  2. 先(前)序遍歷
  3. 中序遍歷
  4. 後序遍歷

詳細說明

以下面的二叉樹進行說明:

在這裏插入圖片描述

層序遍歷

即從上到下按層次訪問該樹,每一層單獨輸出一行,每一層要求訪問的順序爲從左到右。
例子中層序遍歷爲EBFADHCGIKJ,一層一層從上往下,從左往右輸出。

先序遍歷

遍歷順序是 先根再左子樹再右子樹,訪問根結點的操作發生在遍歷其左右子樹之前。(中左後)
我們看例子

  1. 首先從根節點E開始,先根輸出E,然後左子樹B,此時的位置在B,B相當於AD兩個結點的根,所以遍歷B之後,遍歷B的左子樹A,A沒有孩子結點,所以遍歷B的右子樹D,D有左子樹遍歷C,這樣完成了E的左子樹遍歷,再遍歷E的右子樹F,再遍歷F的左子樹,這裏沒有,就遍歷F的右子樹H,然後再遍歷H的左右子樹,左子樹G,當然G沒有孩子結點,所以接下來是I,然後 K J類似。
    所以先序遍歷是EBADCFHGIKJ,記住一點,訪問根結點的操作發生在遍歷其左右子樹之前,在上面的例子中,訪問完E之後訪問B,接下來不是訪問F,而是訪問B的左右子樹
中序遍歷

先左子樹再根再右子樹 (左中右

  1. 中序遍歷就是 B A C,如果B有左右子樹,如下圖,再訪問B之前先訪問B的左子樹
  2. 中序遍歷爲 D B E A C,如果C有右子樹沒有左子樹,如下圖則是先訪問C再訪問F

以上的例子: ABCDEFGHIJK,在訪問E的時候,發現E有左子樹B,先B,再訪問B的時候發現有左子樹A,所以肯定還是A先,所以這個序列是從A開始的

後序遍歷

其訪問順序是先左再右再根
例子中,最後的結果順序是:ACDBGJKIHFE


重點

  • 前序的第一個是整個樹的根
  • 中序用來判別左右子樹的劃分
  • 前序序列中左子樹部分的第一個節點是左子樹的根節點
  • 前序序列中右子樹部分的第一個節點是右子樹的根節點
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章