【恋上数据结构】哈夫曼树学习笔记

哈夫曼树

哈夫曼编码(Huffman Coding)

哈夫曼编码,又称为霍夫曼编码,它是现代压缩算法的基础

假设要把字符串 [ABBBCCCCCCCCDDDDDDEE] 转成二进制编码进行传输。

可以转成 ASCII 编码 (6569,10000011000101) ,但是有点冗长,如果希望编码更短呢?

可以先约定好字符串中的 5 个字母对应的二进制,如下所示

【恋上数据结构】哈夫曼树学习笔记_第1张图片

如果使用哈夫曼编码,可以压缩至 41 个二进制位,约为原来长度的 68.3%

哈夫曼树

【恋上数据结构】哈夫曼树学习笔记_第2张图片

构建哈夫曼树

【恋上数据结构】哈夫曼树学习笔记_第3张图片

构建哈夫曼编码

如何求得 5 个字母对应的哈夫曼编码?

  • 从根节点开始,以 left 为 0,right 为 1 开始往下一个节点一个节点的数,即可得出。

ght 为 1 开始往下一个节点一个节点的数,即可得出。

【恋上数据结构】哈夫曼树学习笔记_第4张图片

你可能感兴趣的:(#,恋上数据结构与算法,数据结构,学习,笔记)