最優二叉樹(哈夫曼樹)

2022-02-21 04:00:30 字數 1124 閱讀 7429

路徑:從樹中乙個結點到另乙個結點之間的通路,路徑上的分支數目成為路徑長度;

樹的路徑長度:從樹根到每乙個葉子之間的路徑長度之和;

結點的帶權路徑長度:從該結點到樹根之間的路徑長度與該結點權值的乘積;

樹的帶權路徑長度:所有葉子結點的帶權路徑長度之和;

結構相同的任意兩顆二叉樹,由於他們的葉子結點權值可能不同,所以他們的帶權路徑長度也會不同;哈夫曼樹是指帶權路徑長度最小的二叉樹;

假設有一組權值{5,29,7,8,14,23,3,11},下面我們將利用這組權值演示構造哈夫曼樹的過程。

第一步:以這8個權值座位根節點的權值構造具有8棵樹的森林;

第二步:從中選擇兩個根的權值最小的樹3,5座位左右子樹構成一棵新樹,新樹根節點的權值為3+5,並將這兩棵樹從森林中刪除,並將新樹新增進去;

第三步:重複第二步過程,直到森林中只有一棵樹為止,此處選擇7,8;

第四步:

第五步:

第六步:

第七步:

哈夫曼編碼:

哈夫曼樹中只存在葉子節點和度為2的結點。葉子節點的個數=度為2的節點數+1。

哈夫曼樹(最優二叉樹)

給定n個權值作為n的 葉子結點,構造一棵二叉樹,若帶權路徑長度達到最小 所謂樹的帶權路徑長度,就是樹中所有的葉結點 的權值乘上其到根結點的路徑長度 稱這樣的二叉樹為最優二叉樹,也稱為哈夫曼樹 huffman tree 哈夫曼樹是帶權路徑長度最短的樹,權值較大的結點離根較近。假設有n個權值,則構造出的...

哈夫曼樹(最優二叉樹)

最優二叉樹 哈夫曼樹 給定n個權值,試構造一棵有n個葉子結點的二叉樹,每個葉子結點帶權為wi。構造出來的二叉樹的形態可以有多個,我們把其中帶權路徑長度wpl最小的二叉樹稱作最優二叉樹或者哈夫曼樹。語言描述 根據給定的n個權值構成n棵二叉樹的集合f 其中每棵二叉樹ti中只有乙個帶權為wi的根結點,其左...

哈夫曼樹 最優二叉樹

差點忘記寫部落格了.哈夫曼樹 其實就是只利用葉子結點來儲存要用資訊的樹,只不過它在構造的時候就擁有了乙個迷人的特性.就是wpl 帶權路徑長度 是最小的.而且還能用這個樹的來為葉子結點中的資訊進行編碼,得出來的各個編碼一定不會相同,並且不會產生混淆的情況.通過哈夫曼樹的特點.實現了根據乙個佇列來建立一...