二叉樹遍歷

2021-08-07 06:44:00 字數 667 閱讀 1927

遍歷二叉樹指的是按照某種規律依次訪問二叉樹的每個節點, 對二叉樹的遍歷過程就是 將非線性結構的二叉樹中的節點排列成線性序列的過程。

如果採用線性結構來儲存二叉樹,程式遍歷二叉樹將非常容易,無需進行任何思考,直接遍歷底層陣列即可。如果採用鍊錶來儲存二叉樹的節點,則有以下兩種遍歷方式:

1.深度優先遍歷

因為二叉樹的定義本身就有「遞迴性」,所以深度優先遍歷時能非常方便地利用遞迴來遍歷每個節點:一顆非空二叉樹由根、左子樹、右子樹組成,依次遍歷這三部分,就可以遍歷整棵二叉樹。

非遞迴演算法可借助棧。

1)先序遍歷

2)中序遍歷

3)後序遍歷

2.廣度優先(按層)遍歷

1.先序遍歷

1)訪問根節點

2)遞迴遍歷左子樹

3)遞迴遍歷右子樹

2.中序遍歷

1)遞迴遍歷左子樹

2)訪問根節點

3)遞迴遍歷右子樹

3.後序遍歷

1)遞迴遍歷左子樹

2)遞迴遍歷右子樹

3)訪問根節點

4.廣度優先(按層)遍歷

借助佇列實現。

1)建乙個佇列,樹的根節點入隊

2)從佇列中彈出乙個節點,然後將該節點的左右節點入隊。如果沒有子節點說明已經到達葉子節點。

3)重複執行2)直到隊列為空

構建二叉樹 遍歷二叉樹

陣列法構建二叉樹 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 二叉樹 要求給出中序遍歷的結果。下面分別就前序遍歷 中序遍歷 後序遍歷進行分析。規律 前序遍歷 根在前 子樹在根後且左子樹比右子樹靠前 中序遍歷 根在中 左子樹在根左邊,右子樹在根右邊 後序遍歷 根在後 子樹在根前且左子樹比...