假設用於通訊的電文僅由8個字母組成,字母在電文**現的頻率分別為0.07,0.19, 0.02, 0.06, 0.32, 0.03, 0.21, 0.10。
1)試為這8個字母設定哈夫曼編碼
2)試設計另一種由二進位制表示的等長編碼方案
3)對於上述例項,比較兩種方案的優缺點。
1)可以將頻率放大100倍,以方便計算,不影響哈夫曼樹的構造。
w=,根據哈夫曼樹的構造規則得出以下的哈夫曼樹:
2)哈夫曼編碼和定長編碼如下表所示:
字母編號
出現頻率
哈夫曼編碼
等長編碼
10.07
1010
0002
0.19
00001
30.02
10000
0104
0.06
1001
0115
0.32
11100
60.03
10001
1017
0.21
01110
80.10
1011
1113)對於上述的兩種方案。定長編碼明顯比哈夫曼編碼更加簡單。但是,哈夫曼編碼是最優字首編碼。對於n個字元的資料檔案來說,分別以它們的出現次數為權值構造哈夫曼樹,則該樹對應的哈夫曼編碼對檔案進行編碼,能夠使得該檔案壓縮過後對應的二進位制檔案的長度最短。
哈夫曼編碼對應二叉樹的wpl為:
wpl=2*(0.19+0.32+0.21)+4*(0.07+0.06+0.10)+5*(0.02+0.03)=2.61
等長編碼對應二叉樹的wpl為:
wpl=3*(0.19+0.32+0.21+0.07+0.06+0.10+0.02+0.03)=3
資料結構 嚴蔚敏
最近一直想找一本純資料結構的書來學習,找來找去都沒有找到一本合適的書籍,相比之下國內的書籍之中,嚴蔚敏和吳偉民的還算是經典版了,很多國內其他資料結構教材都參考這本書的。但缺點是很多都是偽 對程式設計初學者來說有一些難度,甚至有些考研的同學來看這本書有很多還看不懂,並且裡面也有些容易迷惑人的地方。出於...
資料結構(嚴蔚敏)
說起為什麼重新拿起這本書,著實非常慚愧。是因為面試的時候,第乙個面試官面試完專案之後。第二面試官說我們就當聊聊天,考考資料結構,演算法就好了。結果以乙個問題就把我難住了,這個問題是 雜湊表是什麼?所以我打算花兩天的時間重新把這本書看一遍,並做下筆記,這次我一定會記住。目前,計算機已深入到社會生活的各...
嚴蔚敏資料結構習題3 17
3.17 試寫乙個演算法,識別一次讀入的乙個以 為結束符的字串行是否為形如 序列1 序列2 模式的字串行。其中序列1和序列2中都不含字元 且序列2是序列1的逆序列。例如,a b b a 是屬該模式的字串行,而 1 3 3 1 則不是。include include define stack init...