赫夫曼樹(Huffman Tree),又稱霍夫曼樹、哈夫曼樹或最優二叉樹,是一類帶權路徑長度(WPL)最小的二叉樹。根據嚴蔚敏《數據結構》中的定義,我們先理解幾個核心概念:
給定 n 個權值 {w1, w2, ..., wn},構造一棵擁有 n 個葉子結點的二叉樹,每個葉子結點帶權 wi。若該樹的帶權路徑長度 WPL 達到最小,則稱之為赫夫曼樹。
以字符出現頻率為例:A:5, B:15, C:40, D:30, E:10。將字符按頻率從小到大排序,形成有序序列。

採用自底向上的策略,重複「取出兩個最小權值節點、合併為新節點、放回序列」的過程:
合併 A(5) 和 B(15) → 新節點權值 20。

合併 E(10) 和 新節點(20) → 新節點權值 30。

合併 D(30) 和 新節點(30) → 新節點權值 60。

合併 C(40) 和 新節點(60) → 根節點權值 100,樹構造完成。

構造完成的赫夫曼樹可為每個字符生成唯一的前綴編碼(左分支為0,右分支為1),實現無歧義的高效壓縮。例如上例中 C 頻率最高,編碼最短;A 頻率最低,編碼最長。這正是赫夫曼編碼作為經典無損壓縮演算法的核心優勢。
