樹之哈夫曼 Huffman 樹

2021-08-19 13:59:41 字數 408 閱讀 7386

1. 概念

實際生活中,樹中結點常常表示某種意義的數值,稱為該結點的權值。從根結點到任意結點的路徑長度(經過的邊數)與該結點上權值的乘積稱為該結點的帶權路徑長度。樹中所有葉結點的帶權路徑長度之和稱為該樹的帶權路徑長度,記為

wpl = wi*li(i=1,2……,n)

帶權路徑長度(wpl)最小的二叉樹稱為哈夫曼樹,也稱最優二叉樹。

2. 哈夫曼樹的構造

用個例項說明一下。a(5),b(24),c(7),d(17),e(34),f(5),g(13)

取結點集合裡,權值最小的2個數,構成二叉樹。再合併值加入集合。重複上述步驟,直至結點集合中的結點消耗光。

3. 哈夫曼編碼

上面使用編碼表示字串序列,可以對資料進行極大的壓縮,利用哈夫曼樹可以設計出總長度最短的二進位制的字首編碼。

Huffman樹(哈夫曼樹)

哈夫曼樹又稱最優二叉樹,是一種帶權路徑長度最短的二叉樹。所謂樹的帶權路徑長度,就是樹中所有的葉結點的權值乘上其到根結點的路徑長度 若根結點為0層,葉結點到根結點的路徑長度為葉結點的層數 樹的帶權路徑長度記為wpl w1 l1 w2 l2 w3 l3 wn ln n個權值wi i 1,2,n 構成一棵...

哈夫曼樹(huffman)

學完了huffman樹,講一下自己對它的理解 圖二public class huffmantree override public int compareto nonnull treenodeo else if this.weight o.weight return 0 傳乙個陣列進來 建立哈夫曼樹...

哈夫曼(Huffman)樹構造和哈夫曼編碼

n個權值,則構造出的哈夫曼樹有 n個葉子結點。n個權值分別設為 w1,w2,wn,則哈夫曼樹的構造規則為 1 根據給定的 n個權值構成n 棵二叉樹的集合 f 2 每次選擇兩個權值最小的二叉樹做子樹合併為乙個新的二叉樹,新二叉樹的權值為兩個子樹的和。直到森林中只剩一棵樹為止,該樹即為我們所求得的哈夫曼...