遍歷二叉樹

2021-09-29 06:45:44 字數 935 閱讀 3351

二叉樹遍歷是指從根結點出發,按照某種次序依次訪問二叉樹中的所有結點,使得每個結點被訪問一次且僅被訪問一次。

遍歷方法分為:前序遍歷,中序遍歷,後序遍歷,層序遍歷

規則是若是二叉樹為空,則空操作返回,否則先訪問根結點,然後前序遍歷左子樹,再前序遍歷右子樹。如下圖所示 遍歷順序為:abdghceif

規則是若樹為空,則空操作返回,否則從根結點開始(注意並不是先訪問根結點),中序遍歷根結點的左子樹,然後是訪問根結點,最後中序遍歷右子樹。如下圖所示,遍歷的順序為:gdhbaeicf

規則是若樹為空,則空操作返回,否則從左到右先葉子後結點的方式遍歷訪問左右子樹,最後是訪問根結點。如下圖所示,遍歷的順序為:ghdbiefca

規則是若樹為空,則空操作返回,否則從樹的第一層,也就是根結點開始訪問,從上而下逐層遍歷,在同一層中,按從左至右的順序對結點逐個訪問。如下圖所示,遍歷的順序為:abcdefghi

有人說,研究這麼多的遍歷方法幹什麼呢?

我們用圖形的方式來表現樹的結構,應該說是非常直觀和容易理解,但是對於計算機來說,它只有迴圈、判斷等方式來處理,也就是說,它只會處理線性序列,而我們剛剛提到的這四種遍歷方法,其實都是把樹中的結點變成某種意義的線性序列,這就給程式的實現帶來了好處。

另外不同的遍歷提供了對結點依次處理的不同方式,可以在遍歷過程中對結點進行各種處理。

構建二叉樹 遍歷二叉樹

陣列法構建二叉樹 public class main public static void main string args 用陣列的方式構建二叉樹 public static void createbintree 把linkedlist集合轉成二叉樹的形式 for int j 0 j 最後乙個父節...

二叉樹遍歷

二叉樹的遍歷非常重要,但對已一棵比較複雜的樹,要寫出它的先 中 後序遍歷,往往不是那麼簡單,也很容易犯錯。這裡介紹一種比較直觀且不容易犯錯的方法。對於圖1所示的二叉樹,要寫出它的先 中 後序遍歷,往往很容易出錯。圖 1 其實,我們可以用圖2中的紅線描畫出二叉樹的輪廓。圖 2 而對於樹上的每乙個節點,...

二叉樹遍歷

描述 華為實習生招聘,有一道類似如下的題目 給出二叉樹,如圖1所示 圖 1 二叉樹 要求給出中序遍歷的結果。下面分別就前序遍歷 中序遍歷 後序遍歷進行分析。規律 前序遍歷 根在前 子樹在根後且左子樹比右子樹靠前 中序遍歷 根在中 左子樹在根左邊,右子樹在根右邊 後序遍歷 根在後 子樹在根前且左子樹比...