表格
项目 | 成绩 | 百分比 |
---|---|---|
A | 不及格 | 10% |
B | 及格 | 15% |
C | 中 | 30% |
D | 良 | 40% |
E | 优 | 50% |
在这个树1或者树2里,百分比数值叫权值。
类似结点D,E等叫带权结点(Weight)。
类似树里的边(60->70->80->90->E)叫带权路径。
WPL:整棵树的带权路径长度。
树①:
10
×
1
+
15
×
2
+
30
×
3
+
40
×
4
+
5
×
4
=
310
10×1+ 15×2+30×3+40×4+5×4=310
10×1+15×2+30×3+40×4+5×4=310。
树②:$10×3+15×3+30×2+40×2+5×2=225 $。
Haffman构造方法
- 将所有带权结点,按照从权值大小进行从小到大的排序
- 在排好序的序列中,拿出前两个最小的,由二者构成一个新结点
- 将构成的新结点,放到序列中,重新排序
- 重复步骤2 步骤3,直到把结点放完为止(剩一个结点)
**ps:**按照左小右大的规则放置结点,也可以左大右小,只要定下来,剩下结点放置必须遵守
设最终的树为③
树③的WPL: 10 × 4 + 15 × 3 + 30 × 2 = 40 × 1 + 5 × 4 = 205 10×4+15×3+30×2=40×1+5×4=205 10×4+15×3+30×2=40×1+5×4=205
Haffman编码优化
若要发送一串形如ABCCCDFEE…的编码,用Haffman编码优化最优
根据上一知识点,构成树③每个分枝左0右1,如上图,
即得A:1101,B:111,C:10,D:0,E:1100,此时没有一个编码是其他编码的前缀,不会产生歧义。