霍夫曼编码的C语言实现
1霍夫曼编码
霍夫曼编码是1952年为文本文件而建立,是一种统计编码。属于无损压缩编码。霍夫曼编码的码长是变化的,对于出现频率高的信息,编码的长度较短;而对于出现频率低的信息,编码长度较长。这样,处理全部信息的总码长一定小于实际信息的符号长度。霍夫曼编码同香农、费诺编码一样是一种通信编码,但是他们是按不同思路设计了各自的编码实现方法。
通信的根本问题是如何将信源输出的信息在接收端的信息精确或近似的复制出来。若接收端要求无失真地精确复制信源输出的消息,此信源编是无失真编码。只有对离散信源可以实现无失真编码,由于连续信源输出信息量可为无限大,故不可能实现无失真编码。霍夫曼编码就是一种无损压缩编码,在通信领域中应用非常广泛,因此我们用C语言的方式为让大家更好的认识和理解霍夫曼编码。
2编码原理
霍夫曼码由霍夫曼树构造,平均码长是霍夫曼树的带权路径长度,由于霍夫曼树是权最小的树,故其压缩效果最好。霍夫曼树即最优二叉树,带权路径长度最小的二叉树,经常应用于数据压缩。在计算机信息处理中,“霍夫曼编码”是一种一致性编码法(又称