哈夫曼编码贪心算法.doc

哈夫曼编码贪心算法.doc

ID:56010135

大小:52.50 KB

页数:5页

时间:2020-03-15

哈夫曼编码贪心算法.doc_第1页
哈夫曼编码贪心算法.doc_第2页
哈夫曼编码贪心算法.doc_第3页
哈夫曼编码贪心算法.doc_第4页
哈夫曼编码贪心算法.doc_第5页
资源描述:

《哈夫曼编码贪心算法.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、淮海工学院计算机工程学院实验报告书课程名:《算法分析与设计》题目:实验3贪心算法哈夫曼编码班级:软件102班学号:11003215姓名:鹿迅评语:成绩:指导教师:批阅时间:年月日实验3贪心算法实验目的和要求(1)了解前缀编码的概念,理解数据压缩的基本方法;(2)掌握最优子结构性质的证明方法;(3)掌握贪心法的设计思想并能熟练运用(4)证明哈夫曼树满足最优子结构性质;(5)设计贪心算法求解哈夫曼编码方案;(6)设计测试数据,写出程序文档。实验内容设需要编码的字符集为{d1,d2,…,dn},它们出现的频率为{w1,w2,…,wn},应用哈夫曼树构造最短的不等长编码方案。实验环境Turbo

2、C或VC++实验学时2学时,必做实验数据结构与算法structhuffman{doubleweight;//用来存放各个结点的权值intlchild,rchild,parent;//指向双亲、孩子结点的指针};核心源代码#include#includeusingnamespacestd;structhuffman{doubleweight;intlchild,rchild,parent;};staticinti1=0,i2=0;intSelect(huffmanhuff[],inti){intmin=11000;intmin1;for(intk=0;

3、k

4、k<2*n-1;k++){inti1=Select(huff,k);inti2=Select(huff,k);huff[i1].parent=k;huff[i2].parent=k;huff[k].weight=huff[i1].weight+huff[i2].weight;huff[k].lchild=i1;huff[k].rchild=i2;}}voidhuffmancode(huffmanhuff[],intn){strings;intj;for(inti=0;i

5、parent].lchild==j)s=s+"0";elses=s+"1";j=huff[j].parent;}cout<=0;j--){cout<>n;cout<<"inputtheweight:";for(inti=0;i>w[i];}HuffmanTree(huff,w,n);huff

6、mancode(huff,n);}实验结果实验体会哈夫曼编码算法:每次将集合中两个权值最小的二叉树合并成一棵新二叉树,n-1次合并后,成为最终的一棵哈夫曼树。这既是贪心法的思想:从某一个最初状态出发,根据当前的局部最优策略,以满足约束方程为条件,以使目标函数最快(或最慢)为原则,在候选集合中进行一系列的选择,以便尽快构成问题的可行解。每次选择两个权值最小的二叉树时,规定了较小的为左子树。

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

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

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