二叉樹的遍歷

2021-09-26 12:41:29 字數 974 閱讀 8499

二叉樹的遍歷方法有

層序遍歷

先(前)序遍歷

中序遍歷

後序遍歷

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

層序遍歷

即從上到下按層次訪問該樹,每一層單獨輸出一行,每一層要求訪問的順序為從左到右。

例子中層序遍歷為ebfadhcgikj,一層一層從上往下,從左往右輸出。

先序遍歷

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

我們看例子

首先從根節點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的左右子樹

中序遍歷

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

中序遍歷就是 b a c,如果b有左右子樹,如下圖,再訪問b之前先訪問b的左子樹

中序遍歷為 d b e a c,如果c有右子樹沒有左子樹,如下圖則是先訪問c再訪問f

以上的例子:abcdefghijk,在訪問e的時候,發現e有左子樹b,先b,再訪問b的時候發現有左子樹a,所以肯定還是a先,所以這個序列是從a開始的

後序遍歷

其訪問順序是先左再右再根

例子中,最後的結果順序是:acdbgjkihfe

二叉樹的遍歷 二叉樹遍歷與儲存

在資料結構中,二叉樹是非常重要的結構。例如 資料庫中經常用到b 樹結構。那麼資料庫是如何去單個查詢或者範圍查詢?首先得理解二叉樹的幾種遍歷順序 先序 中序 後序 層次遍歷。先序 根節點 左子樹 右子樹 中序 左子樹 根節點 右子樹 後序 左子樹 右子樹 根節點 按層級 class node if c...

構建二叉樹 遍歷二叉樹

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

玩轉二叉樹(二叉樹的遍歷)

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 給定一棵二叉樹的中序遍歷和前序遍歷,請你先將樹做個鏡面反轉,再輸出反轉後的層序遍歷的序列。所謂鏡面反轉,是指將所有非葉結點的左右孩子對換。這裡假設鍵值都是互不相等的正整數。輸入格式 ...