简单举例并描述哈夫曼编码的构造过程:
压缩下面的字符串“beep boop beer”
1、计算出每个字符出现的次数
‘b’ | 3 |
---|---|
‘e’ | 4 |
‘p’ | 2 |
’ ’ | 2 |
‘o’ | 2 |
‘r’ | 1 |
‘!’ | 1 |
2、按照字符出现的次数,由少至多对其进行排序,顺序(按照权值排序表)为
‘r’ | ‘!’ | ‘p’ | ‘o’ | ’ ’ | ‘b’ | ‘e’ |
---|
3、开始构建哈夫曼树,我们始终权值顺序表中的头部元素进行二叉树的构造,并将其放回到原表中(第一个为左节点;第二个为右节点)
4、同样我们将前两个取出来形成一个带权路径值为2+2=4的结点,放回到原表中
5、继续算法可得到