針對於知識回顧/複習,發現一些部落格對於一些名詞的定義各不相同,於是自己對於部分容易混淆的定義作一個簡單的記錄。
詳細關於二叉樹
的內容可以看:二叉樹-Hello演算法,部分部落格內容來自其中。
名詞定義
1. 層
層(Level):二叉樹中的所有節點可以根據與根節點的距離分成不同的層次。根節點位於第 0 層,它的子節點位於第 1 層,依此類推。第 $ k $ 層的節點是與根節點的距離為 $ k $ 的節點集合。
2. 高度
樹的高度(Height of the Tree):從根節點到最遠的葉子節點的最長路徑上的邊數。根節點的高度等於樹的深度。
節點的高度(Height of a Node):從某一節點到最遠的葉子節點的路徑上的邊數。樹的高度通常是根節點的高度。
3. 深度
樹的深度(Depth of the Tree):從根節點到最遠的葉子節點的最長路徑所經過的邊數。一般來說,根節點的深度為 0。
節點的深度(Depth of a Node):從根節點到該節點所經過的邊的數量。
4. 度
節點的度(Degree of a Node):一個節點擁有的子節點數量。二叉樹中的節點度最大為 2。
性質
1. 節點總數
深度為 $ k $ 的二叉樹最多有 $ 2^{k+1} - 1 $ 個節點。
2. 葉子節點數
一個有 $ n $ 個節點的二叉樹的葉子節點數為 $ n - 內部節點數 $。
3. 層次關係
在二叉樹中,第 $ i $ 層最多有 $ 2^i $ 個節點( $ i $ 從 0 開始)。
4. 路徑長度
二叉樹的路徑長度是樹中所有節點到根節點的路徑長度之和。
5. 滿二叉樹(完美二叉樹)
如果一棵二叉樹中所有的層次上的節點數都達到最大值,即第 $ i $ 層有 $ 2^i $ 個節點,則稱為滿二叉樹或完美二叉樹。
6. 完全二叉樹
如果一棵二叉樹中,除最後一層外的所有層上的節點數都達到最大值,並且最後一層的節點從左到右依次排列,這樣的二叉樹稱為完全二叉樹。
7. 完滿二叉樹
完滿二叉樹是一種二叉樹,其中每個節點都有零個或兩個子節點,沒有隻有一個子節點的節點。
8. 平衡二叉樹
平衡二叉樹中,任意節點的左子樹和右子樹的高度之差的絕對值不超過 1 。