再談哈夫曼樹之字串編碼

2022-09-09 03:54:07 字數 561 閱讀 3352

今天做了某公司的一道演算法題,是構建aaaabbbccd的哈夫曼樹,並寫出最後編碼的二進位制串。當時就想,哈夫曼樹而已啊,我才寫了一篇部落格啊。。。。搞起!結果,越搞越感覺不對勁。。。。。。。

問題所在是我把字元的阿斯克嗎當成霍夫曼樹的構架基礎,其實應該是頻次、頻次、頻次!!!!

重新做一下題:

統計頻次字元a

bcd頻次

4321

如何構建哈夫曼樹?見這篇:

cdba:10

cdb:6                a:4

cd:3               b:3

c:2 

d:1  

樹的左側邊是0,右側邊是1:則得出編碼置換表:字元a

bcd編碼

101000001

則源字串被壓縮為:

1111 0101 0100 0000 001

不難看出,壓縮後的二進位制占用3個位元組的儲存空間(不包含字典),源字串占用11個位元組儲存空間。

// 待完善

再談哈夫曼樹之字串編碼

今天做了某公司的一道演算法題,是構建aaaabbbccd的哈夫曼樹,並寫出最後編碼的二進位制串。當時就想,哈夫曼樹而已啊,我才寫了一篇部落格啊。搞起!結果,越搞越感覺不對勁。問題所在是我把字元的阿斯克嗎當成霍夫曼樹的構架基礎,其實應該是頻次 頻次 頻次!重新做一下題 統計頻次 字元 abcd 頻次4...

哈夫曼樹編碼 字串

資料有一種結構叫做二叉樹,即每個節點至多含有兩個子樹,左子樹和右子樹。生活中類似樹結構的東西有很多,如 生活中的族譜,計算機編碼!對於給定n個權值作為n個葉子結點,構造一棵二叉樹,若帶權路徑長度達到最小,稱這樣的二叉樹為最優二叉樹,也稱為哈夫曼樹。哈夫曼樹可以用來編碼資料,如 將字串形式的資料編碼為...

哈夫曼編碼 哈夫曼樹

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