版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上昆明理工大学信息工程与自动化学院学生实验报告( 2011 2012 学年 第 1 学期 )课程名称:算法设计与分析 开课实验室:信自楼机房444 2011年11月02日年级、专业、班学号姓名成绩实验项目名称哈夫曼编码指导教师教师评语该同学是否了解实验原理: A.了解B.基本了解C.不了解该同学的实验能力:A.强 B.中等 C.差 该同学的实验是否达到要求:A.达到B.基本达到C.未达到实验报告是否规范:A.规范B.基本规范C.不规范实验过程是否详细记录:A.详细B.一般 C.没有 教师签名: 年 月 日一、上机目的及内容上机目的(1)了解前缀编码的概念,理解数据压缩的
2、基本方法;(2)掌握最优子结构性质的证明方法;(3)掌握贪心法的设计思想并能熟练运用。上机内容设需要编码的字符集为d1, d2, , dn,它们出现的频率为w1, w2, , wn,应用哈夫曼树构造最短的不等长编码方案。 二、实验原理及基本技术路线图(方框原理图或程序流程图)实验原理(1)证明哈夫曼树满足最优子结构性质;(2)设计贪心算法求解哈夫曼编码方案;(3)设计测试数据,写出程序文档。流程图三、所用仪器、材料(设备名称、型号、规格等或使用软件)设备:1台PC及VISUAL C+6.0软件。 四、实验方法、步骤(或:程序代码或操作过程)源程序#include<stdio.h>#
3、define n 7 /一共有n棵左右孩子均为空的树#define m 2*n-1 /生成哈夫曼树后共有2*n-1个节点float small1,small2;int flag1,flag2,count;typedef struct HuffmanTreefloat weight;int lchild,rchild,parent;huffman;huffman huffmantreem;void CreatHuffmanTree()int i;void select();printf("请输入%d棵树的权值:",n); /初始化每棵树的权值for(i=0;i<n;i+
4、)scanf("%f",&huffmantreei.weight);printf("n");for(i=0;i<m;i+) /初始化huffmantreei.lchild=-1;huffmantreei.rchild=-1;huffmantreei.parent=-1;for(count=n;count<m;count+) /共合并n-1次 select(); huffmantreeflag1.parent=count; huffmantreeflag2.parent=count;huffmantreecount.weight=sma
5、ll1+small2; huffmantreecount.lchild=flag1; /值最小的作为左孩子 huffmantreecount.rchild=flag2;void select() /找出权值最小的两棵树,算法有问题int i,a,b;float stemp;int ftemp;a=0;b=0;for(i=0;i<count;i+)if(huffmantreei.parent=-1)if(a=0)small1=huffmantreei.weight; flag1=i;a=a+1;elseif(b=0) small2=huffmantreei.weight; flag2=i;
6、 b=b+1;if(a=1)&&(b=1)break;if(small1>small2)stemp=small1;small1=small2;small2=stemp;ftemp=flag1;flag1=flag2;flag2=ftemp;for(i=0;i<count;i+)if(huffmantreei.parent=-1) if(flag1!=i)&&(flag2!=i) if(huffmantreei.weight<small2) small2=huffmantreei.weight; flag2=i; if(small1>sma
7、ll2) stemp=small1; small1=small2; small2=stemp; ftemp=flag1; flag1=flag2; flag2=ftemp;void huffmancode()int an,j,k,i,c;for(i=0;i<n;i+)j=i;c=0;while(huffmantreej.parent!=-1)k=huffmantreej.parent;if(huffmantreek.lchild=j) ac=0;if(huffmantreek.rchild=j)ac=1;c=c+1; j=k;printf("节点%d的哈夫曼编码为:"
8、,i);for(c=c-1;c>-1;c-) printf("%d",ac);printf("n");void main()CreatHuffmanTree();huffmancode();五、实验过程原始记录( 测试数据、图表、计算等) 六、实验结果、分析和结论(误差分析与数据处理、成果总结等。其中,绘制曲线图时必须用计算纸或程序运行结果、改进、收获)实验总结:每次将集合中两个权值最小的二叉树合并成一棵新的二叉树,n-1次合并后,,成为最终的一棵哈夫曼树。这既是贪心法的思想:从某一个最初状态出发,根据当前的局部最优策略,以满足约束方程为条件,以使目标函数最快(或最慢)为原则,在候选集合中进行一系列的选择,以便尽快构成问题的可行解。每次选择两个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CRRA 0301-2023绿色再生塑料 产销监管链
- T/TMAC 231-2025电子器件用金刚石热沉片
- T/GDLC 022-2024温室气体 产品碳足迹 量化方法与要求 凝胶糖果
- T/CI 479-2024区域复合水灾害特征变异识别规程
- T/CABC 13-2024产品数字护照 动力蓄电池唯一编码
- T/CRHA 088-2024病理免疫组织化学检测质控品要求
- 2025~2026学年黑龙江齐齐哈尔市龙江县人教版上册第一次学情自测教学质量抽测六年级数学试卷【附答案】
- 2025-2026学年吉林省榆树市初中政治八年级期末上册自测高频题(附答案)
- 2027届江苏省南通市田家炳中学七年级数学第一学期期末检测模拟试题含解析
- 前台接待访客登记、引导与通知流程方案
- 2026年皖豫天一大联考高三10月英语试题(含答案)
- 2026-2027学年四年级上学期统编版语文单元练习卷 第一单元-1(含答案)
- 【应用方案】2026智慧农业农业机器人智能感知与精准作业一体化设计方案
- 高标准农田建设项目初步设计技术规程(NYT 5490-2026 )
- CSCO非小细胞肺癌诊疗指南(2026版)
- 压缩空气储能地下洞库施工方案
- T∕CCEAS008-2026 建设工程造价咨询成果文件质量标准
- (2026年)护理查对制度课件
- 第10课《养成遵纪守法好习惯》第1框《增强遵纪守法意识》-【中职思政】《职业道法与法治》课件(高教版2023基础模块)
- 口腔侵入性操作目录
- 班主任基本功大赛-情景答辩23题(中学组)
评论
0/150
提交评论