11. (简答题) 有一组字符C={a,b,c,d},其权值为W={7,5,2,4}: (1)求其构造的哈夫曼树 (2)求其哈夫曼树的WPL (3)并且对各字符进行哈夫曼编码。
时间: 2024-06-01 20:12:24 浏览: 179
用户键盘输入若干个整数作为待编码字符的权值,程序建立哈夫曼树并输出各字符的哈夫曼编码
(1)构造哈夫曼树的过程如下:
首先将C中的字符按照权值从小到大排序,得到顺序为c,d,b,a。
然后取出权值最小的两个字符c和d,构造一个新节点,将c和d作为新节点的左右子节点,并将新节点的权值设为c和d的权值之和2。
得到新的权值序列W'={6,5,4},将其按照从小到大的顺序重新排序,得到W''={4,5,6}。
重复上述步骤,取出权值最小的两个字符b和a,并构造一个新节点,将b和a作为新节点的左右子节点,并将新节点的权值设为b和a的权值之和9。
此时只剩下一个节点,即哈夫曼树的根节点,其权值为WPL=9。
(2)哈夫曼树的WPL为9。
(3)对各字符进行哈夫曼编码的过程如下:
从哈夫曼树的根节点开始,向左走为0,向右走为1,得到各字符的编码:
c:00
d:01
b:10
a:11
阅读全文