哈夫曼编码译码器(附源码).doc

哈夫曼编码译码器(附源码).doc

ID:57308488

大小:509.00 KB

页数:23页

时间:2020-08-11

哈夫曼编码译码器(附源码).doc_第1页
哈夫曼编码译码器(附源码).doc_第2页
哈夫曼编码译码器(附源码).doc_第3页
哈夫曼编码译码器(附源码).doc_第4页
哈夫曼编码译码器(附源码).doc_第5页
资源描述:

《哈夫曼编码译码器(附源码).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、建立Huffman树进行编码和译码的设计郝萌1100300423哈尔滨工业大学计算机科学与技术学院1003104班摘要:建立一个简易的系统,对于给定的一篇英文文章,统计字符出现的概率,并根据概率建立Huffman树,利用Huffman编码对文章进行编码和译码。掌握Huffman树的建立与应用,并进一步熟练掌握程序的设计流程。关键词:Huffman树Huffman编码文章译码文件压缩解压缩1.引言:给定一篇文章,统计字符出现的概率,根据概率建立哈夫曼树,进行编码与译码和文件压缩、解压缩等操作。并进行哈夫曼编码,进而可以利

2、用哈夫曼编码对文章2.程序设计流程(1)文字表述开始进入功能选择界面,包含五种操作:1.读取文章并对字符编码,2.哈夫曼编码信息,3.文章编码,4.文章译码,5.文件压缩,6.文件解压缩,7.退出程序。操作1:给定一篇文章,统计字符出现的概率,并根据概率建立Huffman树,并利用Huffman树对字符进行Huffman编码。操作2:显示Huffman编码信息,包括字符,字符出现的概率,Huffman编码。操作3:对文章进行译码,显示译码信息,并保存。操作4:对文章进行译码,显示并保存。操作5:对文件进行压缩,每7位二

3、进制序列对应一个ASCII码。操作6:对文件进行解压缩。(2)流程图(2)程序数据要求及功能实现主界面1.读取文件并对字符进行编码2.哈夫曼编码信息3.文件编码(1)显示文件编码(2)保存文件编码4.文件译码(1)显示文章编码的译码(2)保存文章编码的译码5.文件压缩5.文件解压缩附:程序源代码/**File:HUFFMANFUNCTION.h*Author:Administrator**Createdon2011年12月19日,下午6:19*/#ifndefHUFFMANFUNCTION_H#defineHUFFMA

4、NFUNCTION_H#include#include#include#include#definemax1150#definemax250#definemax3256usingnamespacestd;classHtnote{public:charname;//字符名doubleweight;//权重intlchild;//左孩子intrchild;//右孩子intparent;//父亲Htnote(){weight=0;lchild=-1;pa

5、rent=-1;rchild=-1;}};className{public:intnum;//字符出现的次数charpname;//字符名doublelweight;//权值Name(){num=0;lweight=0;}};classGetName{public:charnamef[max2];intn;//字符的种类intsum;//字符的总数Nameletter[max1];//存储字符信息的类的数组GetName(){sum=0;n=0;}voidGetWeight()//得到字符的权值{for(inti=0;

6、i>namef;input.open(namef);//打开文件if(input.fail()){cout<<"该文件不存在!"<

7、um++;while(!input.eof()){//读取文件中的所有字符inttag=0;ch=input.get();for(inti=0;i

8、c:charch;//存储字符charbits[max1];//存储编码};classFunction{public:GetNameL;intfn;//定义哈夫曼数组大小HtnoteHuffmanT[max3];//哈夫曼数组CodeNodeCode[max1];//字符编码数组Function(){fn=0;}voidCharH

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。