例题:一组字符(a,b,c,d)在文中出现的次数分别为(7,6,3,5),字符'd'的哈夫曼编码的长度为?
题解:
首先构造huffman树
每一步都将所有数字排序
方法如下:
1:
3 5 6 7
2:
6 7 8
/ \
3 5
3:
8 13
/ \ / \
3 5 6 7
4:
21
/ \
8 13
/ \ / \
3 5 6 7
所以构造哈夫曼树如图
7 6 3 5 分别对应a b c d
如果左边为0 ,右边为 1 ,则他们编码分别为:
a 11
b 10
c 00
d 01
长度为2
例题2:
这样编码出来为
A: 0 1bit
B: 10 2bit
C: 110 3bit
D: 111 3bit
所以中的编码位数就是出现次数×编码bit
1×4+2×3+3×2+3×1=19
这个就是带权路径长度,因为出现的次数就是权重,编码长度就是节点到根节点的层数,