huffman编码与解码

huffman编码与解码

ID:9810698

大小:154.50 KB

页数:11页

时间:2018-05-10

huffman编码与解码_第1页
huffman编码与解码_第2页
huffman编码与解码_第3页
huffman编码与解码_第4页
huffman编码与解码_第5页
资源描述:

《huffman编码与解码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《数据结构的课程设计》报告题目:Huffman编码与解码班级:1612401学号:161240113姓名:张修鸣指导老师:孙涵完成日期:2014.1.3目录一.需求分析.二.程序主要功能.三.程序运行平台.四.程序类说明.五.模块分析.六.存在的不足与对策.七.体验感悟八.程序源代码.需求分析对一篇英文文章(大于2000个英文字符),统计各字符出现的次数,实现Huffman编码,以及对编码结果的解码。程序主要功能(1)输出每个字符出现的次数和编码,其中求最小权值要求用堆实现。(2)在Huffman编码后,要将编码表和英文文章编码结果保存到文件中,编码结果必须是二进制形

2、式,即01的信息用比特位表示,不能用字符’0’和’1’表示。(3)提供读编码文件生成原文件的功能。程序运行平台该程序是用VC++6.0制做的,使用MicrosoftVisualC++6.0运行该程序,具体操作是:打开MicrosoftVisualC++6.0,菜单栏里点文件→打开工作区→找到“图书管理系统.dsw”这个文件→打开,或者在资源管理器中双击该文件,此时,VC++6.0会自动打开,并载入该系统相关资源,点击Run命令菜单或者或用快捷键Ctrl+F5运行该程序。trl计分析能

3、程序类说明二叉树类记录typedefstruct{intweight,flag,parent;charc;intlchild,rchild;}hnodetype;赫夫曼类typedefstruct{intBit[3000];intStart;}hcodetype;函数分析:voidcreate(intT[])创建二叉树voidVisit(inti,intn)显示元素的权值intIN(inti,intn)中序遍历vo

4、idhtree()赫夫曼解码模块分析我设计的系统,主要分为两大模块1编码模块2解码模块该系统主要完成以下功能:编码模块:1从文章中读取信息2构建赫夫曼树3进行赫夫曼编码并保存在文件中解码模块:1从文件中读取赫夫曼码2进行解码3保存在文件中文章信息元素权值赫夫曼解码结果存在的不足与对策由于自身能力有限,所以没有起到真正的压缩文件的功能。在设计过程中由于设计者的编程功底欠缺,因此学习过程较为艰辛,需要解决的问题也比较多。在以后的学习中,应该循序渐进,不可急于求成,先打好基础,这样才能更好地发展。体验感悟在编写程序的过程中,深切的体会到自身能力还有待提高,通过大规模的查询网

5、上资料与相关书籍我学习到了很多以前不知道的编程方法与各种奇妙的函数语句时,提高了自己对程序设计本身的兴趣,更加乐意去学习这方面的新的东西,并在不断地自我挑战中收获着,或知识技能,或信心勇气。希望自己在今后的学习中可以更好的完善自我。程序源代码#include#include#include"math.h"#includeusingnamespacestd;typedefstruct{intweight,flag,parent;charc;intlchild,rchild;}hnodetype;typedefstr

6、uct{intBit[3000];intStart;}hcodetype;hnodetypeHuffnode[100],Htree[100];hcodetypeHuffcode[100],cd,Ctree[2000];intw[29];voidcreate(intT[]){charc;intm=0;fstreamfp;fp.open("a.txt",ios::in);if(fp.fail()){cout<<"文件打开失败!";exit(0);}while(!fp.eof()){fp.get(c);if(c<='z'&&c>='a')T[c-'a']++;if(c<

7、='Z'&&c>='A')T[c-'A']++;if(c=='')T[26]++;if(c==',')T[27]++;if(c=='.')T[28]++;}fp.close();}voidVisit(inti,intn){if(i

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

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

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