哈夫曼树 课程设计报告.doc

哈夫曼树 课程设计报告.doc

ID:59432202

大小:270.00 KB

页数:10页

时间:2020-05-25

哈夫曼树 课程设计报告.doc_第1页
哈夫曼树 课程设计报告.doc_第2页
哈夫曼树 课程设计报告.doc_第3页
哈夫曼树 课程设计报告.doc_第4页
哈夫曼树 课程设计报告.doc_第5页
资源描述:

《哈夫曼树 课程设计报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、数据结构课程设计报告题目:哈夫曼树及其应用学生姓名:刘昶志学号:班级:指导教师:张军2012年6月3日目录1、需求分析说明~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~32、总体设计~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~43、详细设计~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~54、实现部分~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~75、程序测试~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~96、总结~~~~~~

2、~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~10一.需求分析说明设计目的:熟悉树的各种存储结构及其特点。掌握建立哈夫曼树和哈夫曼编码的方法及带权路径长度的计算。设计内容数据的读入﹑存储,生成文件,将键盘输入的信息存入指定的文件中;设计一程序求解此问题.哈夫曼(Huffman)编码原理是一种利用二叉树实现的编码原理哈夫曼(Huffman)编码是1952年为文本文件而建立,是一种统计编码。属于无损压缩编码。哈夫曼编码的码长是变化的,对于出现频率高的信息,编码的长度较短;而对于出现频率低的信息,编码长度较长。这样,处理全部信息的总码长一

3、定小于实际信息的符号长度。锻炼我们的编码能力,真正理解数据结构的编码思想,并且锻炼我们的动手能力和成员间的配合,提高程序编写能力。在信息传递时,希望长度能尽可能短,即采用最短码。哈夫曼编码的应用,就是采用这种有效的数据压缩技术可以节省数据文件的存储空间和计算机网络的传送时间。二.总体设计哈夫曼树编/译码系统初始化退出重新建立哈夫曼树编码打印编码译码(1).初始化:提示初始化界面→提示各字符及其权值将存放在hfmTree中→以字母出现次数为权值建立哈弗曼树→弹出选择菜单进行进一步操作;(2).编码:弹出编码界面→读取文件→提示输入要编码的字符串→对文本进行哈

4、弗曼编码并输出编码→保存编码文件;(3).译码:弹出译码界面→利用建立好的哈弗曼树进行译码→将译码输出→保存译码文件;三.详细设计1.数据结构设计#include//包含的库函数#include#includeconstintn=6;//叶子数目constintm=2*n-1;//森林中树的棵树constintc=4;classtree{public:chardata;intweight;//权值intparent;//双亲intlch,rch;//左右孩子voidcreathafumant

5、ree();//建立哈夫曼树voideditcode();//编码函数voidtrancode(charb[],intmax);//译码函数};2.算法设计哈夫曼树编码算法:输入字符,权值算法:输入一些字符,然后再输入相对应数量的权值,建哈夫曼树,然后进行编码,并得到相对应的哈夫曼编码。voidtree::editcode(){//编码inti,j,k,f,count=0;intcode[n+1][c+1];for(i=1;i<=n;i++)for(j=1;j<=c;j++)code[i][j]=2;for(i=1;i<=n;i++){k=1;j=hftr

6、ee[i].parent;f=i;while(j!=0){if(hftree[j].lch==f){code[i][k++]=0;}else{code[i][k++]=1;}j=hftree[j].parent;f=hftree[f].parent;}}cout<=1;j--){if(code[i][j]!=2){cout<

7、unt=count/n;cout<<"平均编码的长度为:"<

8、ree[j].weight;j=m;}i++;}}四.实现部分cl

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

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

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