字符 压缩文本文件 c语言,用Huffman编码对文件进行压缩的C语言实现.pdf

用Huffman编码对文件进行压缩的C语言实现.pdf

福建电脑

48 2012 年第 1 期

用 Huffman 编码对文件进行压缩的 c 语言实现

路炜,门玉梅,李建俊

(河北师范大学附属民族学院河北石家庄 050091 )

[摘 要] :本文介绍了采用 Huffman 编码对ASCII 码文件进行压缩的基本原理,并用 C 语言程序实

现了这个压缩过程。文中给出了比较完整的 C 语言程序代码,可以直接用于调试实验。

【关键词]: Hu岱nan 编码哈夫曼编码哈夫曼树文件压缩 C 语言数据结构

char asciiCode;

1 、引言

unsigned long huffCode;

为了减少文件的存储空间或者在传输文件时减少

int h!IÍf巳odeLen;

网络流量,经常要对文件进行压缩。使用 Huffman 编码

)HuffCode;

进行压缩是一种很好的压缩方法,具有压缩速度快、算

法简单等优点。在《数据结构》实践教学中,必然会遇到

创建由该结构体结点所组成的,长度为 128 的一

让学生利用 Huffman 编码进行文件压缩这样的课题。

维数组 codeList[128] ,且 codeList 中的下标和 ascl­

由于教材上只给出了 Huffman 树的定义和编码,因此, iCode 满足下面的顺序存放关系:codeList[i].asciiCode=

很多老师和学生在完成这个课题都时感觉比较困难。

i; 这样的话,查找某个字符 inChar 的 huffman 编码的

本文将给出利用 Huffman 编码对 ASCII 码文件进行压 工作便变得相当轻松了,如下:sHuffCode=codeList[in-

缩的 C 语言程序实现;以供大家参考。

Ch叫.huffCode; 数组 codeList[1281的创建可以采用

2、基本原理

某种遍历方式下的按找到的字符进行置数的方式,十

Huffman 编码是一种常用的压缩编码方法,其基

分的方便。

本原理是将频繁使用的数据用较短的代码代替,较少

3、编程准备

使用的数据用较长的代码代替,每个数据的代码各不

本程序将预先统计好的各个ASCII 码字符出现的

相同,这些代码都是二进制码,且代码的长度是可变

频率(即 Huffman 树的叶子节点权值)放在 key.txt 文件

的,它的实现主要借助于 Huffman 树。用 Huffman 编码

中,然后将这些权值读取出来保存到一个数组中,然后

对文件进行压缩的过程大致分为四个步骤:1 创建

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值