哈夫曼树
哈夫曼编码(Huffman Coding)
哈夫曼编码,又称为霍夫曼编码,它是现代压缩算法的基础
假设要把字符串 [ABBBCCCCCCCCDDDDDDEE] 转成二进制编码进行传输。
可以转成 ASCII 编码 (6569,10000011000101) ,但是有点冗长,如果希望编码更短呢?
可以先约定好字符串中的 5 个字母对应的二进制,如下所示
如果使用哈夫曼编码,可以压缩至 41 个二进制位,约为原来长度的 68.3%
哈夫曼树
构建哈夫曼树
构建哈夫曼编码
如何求得 5 个字母对应的哈夫曼编码?
- 从根节点开始,以 left 为 0,right 为 1 开始往下一个节点一个节点的数,即可得出。
ght 为 1 开始往下一个节点一个节点的数,即可得出。