數據結構作業-嚴蔚敏-5.2.(3)


一、題目說明

假設用於通信的電文僅由8個字母組成,字母在電文中出現的頻率分別為0.07,0.19, 0.02, 0.06, 0.32, 0.03, 0.21, 0.10。

1)試為這8個字母設置哈夫曼編碼

2)試設計另一種由二進制表示的等長編碼方案

3)對於上述實例,比較兩種方案的優缺點。

二、解答

1)可以將頻率放大100倍,以方便計算,不影響哈夫曼樹的構造。

w={7, 19, 2, 6, 32, 3, 21, 10},根據哈夫曼樹的構造規則得出以下的哈夫曼樹:

image

2)哈夫曼編碼和定長編碼如下表所示:

字母編號 出現頻率 哈夫曼編碼 等長編碼
1 0.07 1010 000
2 0.19 00 001
3 0.02 10000 010
4 0.06 1001 011
5 0.32 11 100
6 0.03 10001 101
7 0.21 01 110
8 0.10 1011 111

3)對於上述的兩種方案。定長編碼明顯比哈夫曼編碼更加簡單。但是,哈夫曼編碼是最優前綴編碼。對於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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM