哈夫曼信源编码c语言程序代码

发布时间:2021-06-06

哈夫曼编码的C语言实现

编码原理程序步骤的分析:

哈夫曼码是用概率匹配方法进行信源编码。编程时应该注意:1,概率大的符号对应于短码,概率小的对应于长码,充分利用短码;2缩减信源的最后二个码字,总是最后一位不同,保证了哈夫曼码是即时码。程序步骤:(见信息论课本p88页内容)

(l)将信号源的符号按照出现概率递减的顺序排列。

(2)将两个概率最小的字母分别配以0和1两个码元,并将这两个概率相加作为一个新字母的概率

(3)重排后的两个概率最小符号重复步骤(2)过程。

(4)不断继续上述过程,直到最后两个符号配以0和1为止

(5)从最后一级开始向前返回各个信源符号所对应的码元序列,及相应的码字。

根据以上规则编码可知:哈夫曼编码实际上构造了一个码树,码树从最上层的端点开始构造,到树根结束,最后得到一个横放的码树,所以编出的码是即时码。哈夫曼编码概率大的符号对应于短码,概率小的符号对应于长码,使平均码长最小。每次对概率最小的两个符号求概率之和形成缩减信源时,构造出两个树枝,由于给两个树枝赋码元时是任意的,因此编出的码字不惟一。

程序源代码如下;

#include <stdio.h>

哈夫曼信源编码c语言程序代码.doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219