二叉樹分類
滿二叉樹:所有節點都有左子樹和右子樹,且葉子節點都在同一層上;
完全二叉樹:若設二叉樹的深度爲h,除第 h 層外,其它各層 (1~h-1) 的結點數都達到最大個數,第 h 層所有的結點都連續集中在最左邊,這就是完全二叉樹。
四種遍歷方式
以下圖說明幾種不同遍歷方式的輸出:
(1)前序遍歷
從根節點出發,先左子樹遍歷後右子樹遍歷的方式,第一次遇到的節點數據就輸出: ABDECF
(2)中序遍歷
從根節點出發,先左子樹遍歷後右子樹遍歷的方式,第二次遇到的節點數據就輸出:DBEAFC
(3)後序遍歷
從根節點出發,先左子樹遍歷後右子樹遍歷的方式,第三次遇到的節點數據就輸出:DEBFCA
(4)層序遍歷
從根節點出發,一層一層地先左子樹後右子樹的方式,輸出節點數據爲:ABCDEF
其中比較繞的一點在於葉子節點,葉子節點雖然沒有子節點,但遍歷時也會去尋找左子節點和右子節點,這樣就會產生三次訪問,故中序遍歷和後序遍歷的第一個節點是底層的左葉子節點,後面的類似。
前序遍歷第一個節點爲根節點,後序遍歷最後一個節點爲根節點,中序遍歷中根節點左右兩邊分別是左子樹和右子樹,所以一般可根據兩個遍歷結果畫出二叉樹結構。