已知下列字符a、b、c、d、e、f、g的权值分别为4,13,8,5,3,9请构造哈夫曼树,计算其wp值
时间: 2023-06-27 09:07:41 浏览: 137
BP.rar_BP神经网络_c bp神经元_fstream.h_stdlib.h_神经网络 权值
首先将字符按照权值从小到大排序,得到顺序为 e、g、a、d、c、f、b。然后将权值最小的两个字符 e 和 g 合并,得到一个新节点 eg,其权值为 e 和 g 的权值之和 3+9=12。合并后的序列为 eg、a、d、c、f、b、再将权值最小的两个节点 eg 和 a 合并,得到新节点 ega,其权值为 eg 和 a 的权值之和 12+4=16。合并后的序列为 ega、d、c、f、b。以此类推,直到所有节点都合并成一个根节点,得到哈夫曼树如下:
```
[48]
/ \
[21] [27]
/ \ / \
[9] [12] [13] [14]
/ \ / \ / \
e g a d c f
```
其中每个节点的值表示该节点下面所有字符权值之和。根据哈夫曼树可以计算每个字符的编码:
```
e: 00
g: 01
a: 101
d: 100
c: 1101
f: 1100
b: 111
```
每个字符的编码长度分别为 2、2、3、3、4、4、3,所以平均编码长度为:
```
wp = (4*2 + 13*2 + 8*3 + 5*3 + 3*4 + 9*4 + 3) / (4+13+8+5+3+9)
= 2.86
```
因此,该哈夫曼树的 wp 值为 2.86。
阅读全文