二叉樹遍歷就是沿某條搜尋路徑周遊二叉樹,對樹中的每乙個節點訪問一次且僅訪問一次。由於二叉樹的遞迴性質,遍歷演算法也是遞迴的。
二叉樹的遍歷有先序遍歷、中序遍歷和後序遍歷。下面以(圖一) 中二叉樹介紹一下這三種遍歷。
如圖:二叉樹
1、先序遍歷
先序遍歷的遍歷規則是(中 前 後),中就是父節點,前就是左孩子,後是右孩子。既先訪問當前節點,再訪問左子樹,最後訪問右子樹。這個過程是由根節點開始的乙個遞迴的過程。以上面這個二叉樹為例。他的遍歷過程為:
(1)abc
(2)a(bd)(ce)
(3)a(b(df))(c(egh))
2、中序遍歷
中序遍歷的遍歷規則是(前 中 後),既訪先問左子樹,再訪問當前節點,最後訪問右子樹。他的遍歷過程為:
(1)bac
(2)(db)a(ce)
(3)((df)b)a(c(geh)
3、後序遍歷
中序遍歷的遍歷規則是(前 後 中),既先訪問當前節點的左子樹,在訪問當前節點的右子樹,最後訪問當前節點。他的遍歷過程為:
(1)bca
(2)(db)(ec)a
(3)((fd)b)((ghe)c)a
由上面乙個例子可以看出,這是乙個遞迴的過程,由根節點開始,遞迴的對各自的孩子結點按規則遍歷。
構建二叉樹 遍歷二叉樹
陣列法構建二叉樹 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 二叉樹 要求給出中序遍歷的結果。下面分別就前序遍歷 中序遍歷 後序遍歷進行分析。規律 前序遍歷 根在前 子樹在根後且左子樹比右子樹靠前 中序遍歷 根在中 左子樹在根左邊,右子樹在根右邊 後序遍歷 根在後 子樹在根前且左子樹比...