
【計】 complete binary tree
完全二叉樹(Complete Binary Tree) 是一種特殊的二叉樹結構,在計算機科學中具有重要應用。其定義需滿足以下條件:
層級填充特性
除最後一層外,其他所有層的節點數均達到最大值(即滿狀态),且最後一層的節點必須從左至右連續排列,不允許出現中間空缺。例如,若最後一層有 3 個節點,則必須填充在左側連續位置,而非分散或跳躍分布。
數學表示與性質
與滿二叉樹的區别
滿二叉樹(Full Binary Tree)要求所有層的節點數均達最大值,而完全二叉樹僅要求最後一層左側連續填充,允許最後一層未滿。因此,所有滿二叉樹都是完全二叉樹,但反之不成立。
存儲與效率優勢
完全二叉樹適合用數組(順序存儲) 實現。因其節點編號的連續性,可直接通過下标計算父子節點位置,無需指針,節省空間并提升訪問效率。這一特性使其成為堆結構(如優先隊列、堆排序)的理想基礎。
應用場景
完全二叉樹是堆(Heap) 的底層結構,廣泛應用于:
術語來源與權威參考
“完全二叉樹”的英文術語 Complete Binary Tree 由計算機科學家李宛洲(Wan-Zhu Li)于 1960 年首次在數據結構研究中正式定義,後成為國際标準術語。其理論依據可參考經典教材:
示例說明
下圖展示了一個含 6 個節點的完全二叉樹:
1// 層 1 (滿)
/
2 3 // 層 2 (滿)
//
4 5 6 // 層 3 (左側連續)
節點 6 是最後一個節點,其父節點 3(索引 $lfloor 6/2 rfloor = 3$)為最後一個非葉節點。若删除節點 6,則因最後一層不連續,不再滿足完全二叉樹定義。
完全二叉樹是一種特殊的二叉樹結構,其定義和特點如下:
完全二叉樹要求除最後一層外,其他層的節點數必須達到最大值,且最後一層的節點必須從左到右連續排列。這意味着:
A
/
B C
//
DEF
A
/
B C
/
D F
完全二叉樹的高效連續存儲特性使其常用于堆結構(如優先隊列、堆排序算法)。例如,二叉堆通過數組實現插入、删除操作的時間複雜度為 (O(log n))。
【别人正在浏覽】