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

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

ID:57680529

大小:509.00 KB

页数:23页

时间:2020-08-31

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

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

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

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

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

4、>#include#include#definemax1150#definemax250#definemax3256usingnamespacestd;classHtnote{public:charname;//字符名doubleweight;//权重intlchild;//左孩子intrchild;//右孩子intparent;//父亲Htnote(){weight=0;lchild=-1;parent=-1;rchild=-1;}};className{public:intnum;//字符出现的次数ch

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

6、}}intReadLetter(){ifstreaminput;cout<<"请输入文件名:"<>namef;input.open(namef);//打开文件if(input.fail()){cout<<"该文件不存在!"<

7、i++){if(letter[i].pname==ch){letter[i].num++;sum++;tag=1;}}if(tag==0){n++;letter[n].pname=ch;letter[n].num++;sum++;}}sum--;input.close();GetWeight();//得到字符权值}};classCodeNode//编码类{public:charch;//存储字符charbits[max1];//存储编码};classFunction{public:GetNameL;intfn;//定义哈夫曼数组大小Htno

8、teHuffmanT[max3];//哈夫曼数组CodeNodeCode[max1];//字符编码数组Function(){fn=0;}voidCharHuffmanTCodin

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

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

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