哈夫曼编码的基本概念和构造方法
参考:B站青岛大学–王卓的数据结构与算法基础视频
哈夫曼树相关知识点
详见博客:
哈夫曼树的基本概念和构造方法
哈夫曼编码基本概念
引入等长编码
下面的例子是将字符串用2位的等长编码表示
- 在远程通讯中,要将待传字符转换成由二进制的字符串
- 设要传送的字符串为: ABACCDA
- 若编码为:A——00,B——01,C——10,D——11
- 则字符串可转换为:00010010101100
使用不等长的编码:
引入不等长编码
如下图,使用不等长的只需要9个二进制位。
但是问题是前面四个零会导致翻译时出错。
上图的编码称为前缀编码。
使用哈夫曼算法构建哈夫曼编码
示例:
哈夫曼编码的相关问题
哈夫曼编码的两个性质
- 性质1:哈夫曼编码是前缀码
- 性质2:哈夫曼编码是最优前缀码