三叉哈夫曼樹的分析

2021-07-14 13:38:02 字數 477 閱讀 3259

要講解三叉哈夫曼樹之前,你得弄懂一下幾個問題:

1、什麼是二叉哈夫曼樹

2、二叉哈夫曼樹是什麼型別的演算法

3、在2中的演算法構建出三叉或者n叉哈夫曼樹一定是最優的嗎?

以上的問題我就不給予具體的answer,其實二叉哈夫曼樹就應用了

貪心演算法,

對於該演算法不熟悉的同學趕緊去補補書

貪心演算法無法保證全域性最優,而是提供了區域性最優的一種解決方法。(當然證明為最優的貪心策略就可以的,前提你得從數學上證明該策略可行)

根據貪心演算法暫時生成三叉樹,然後在三叉樹的基礎上進行以下調整:

(1)在上述生成普通三叉樹的結束後,判斷根結點是否含有三棵子樹,如果是,則演算法結束,否則轉(2);

(3)重複執行(2),直到除最下層非終端節點外,其餘非終端結點都含有三棵子樹為止。

K叉哈夫曼樹

哈夫曼樹是帶權路徑長度最短的樹,權值較大的結點離根較近。哈夫曼樹的構造方法是貪心的每次選最小的幾個節點構造。當k 2k 2 k 2的時候需要預處理一下,因為可能最後一步合併操作的點數不到k個節點,這樣的話就不是最優的了。k 2k 2 k 2預處理方法 當r em ain n 1 mod k 1 0r...

哈夫曼編碼 哈夫曼樹

1.定義 哈夫曼編碼主要用於資料壓縮。哈夫曼編碼是一種可變長編碼。該編碼將出現頻率高的字元,使用短編碼 將出現頻率低的字元,使用長編碼。變長編碼的主要問題是,必須實現非字首編碼,即在乙個字符集中,任何乙個字元的編碼都不是另乙個字元編碼的字首。如 0 10就是非字首編碼,而0 01不是非字首編碼。2....

哈夫曼樹 哈夫曼編碼

定義從a結點到b結點所經過的分支序列為從a結點到b結點的路徑 定義從a結點到b結點所進過的分支個數為從a結點到b結點的路徑長度 從二叉樹的根結點到二叉樹中所有結點的路徑長度紙盒為該二叉樹的路徑長度 huffman樹 帶權值路徑長度最小的擴充二叉樹應是權值大的外界點舉例根結點最近的擴充二叉樹,該樹即為...