欢迎来到天天文库
浏览记录
ID:30121304
大小:16.94 KB
页数:6页
时间:2018-12-27
《哈夫曼树的实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划哈夫曼树的实验报告 XX级数据结构实验报告 实验名称:实验3——哈夫曼树学生姓名:陈家斌班级:XX班内序号:16学号:日期:XX年12月3日 1.实验要求 【实验目的】 通过选择下面两个题目之一进行实现,掌握如下内容:?掌握二叉树基本操作的实现方法?了解赫夫曼树的思想和相关概念?学习使用二叉树解决实际问题的能力【题目】 利用二叉树结构实现赫夫曼编/解码器。【基本要求】 1、初始化(Init):能够对输入的任意长度的字符串s进行统计,统计每个字符的频度,并建立赫夫曼
2、树 2、建立编码表(CreateTable):利用已经建好的赫夫曼树进行编码,并将每个字符的编码输出。 3、编码(Encoding):根据编码表对输入的字符串进行编码,并将编码后的字符串输出。 4、译码(Decoding):利用已经建好的赫夫曼树对编码后的字符串进行译码,并输出译码结果。 5、打印(Print):以直观的方式打印赫夫曼树 6、计算输入的字符串编码前和编码后的长度,并进行分析,讨论赫夫曼编码的压缩效果。目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安
3、保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 【测试数据】 IlovedataStructure,IloveComputer。IwilltrymybesttostudydataStructure. 提示: 1、用户界面可以设计为“菜单”方式:能够进行交互。 2、根据输入的字符串中每个字符出现的次数统计频度,对没有出现的 字符一律不用编码。 【代码要求】 1、必须要有异常处理,比如删除空链表时需要抛出异常;2、保持良好的编程的风格: ?代码段与段之间要有空行和缩近?标识符名称应该与其代表的意义一致?函数名之前应该添加注释说明该函数的功能?关键
4、代码应说明其功能3、递归程序注意调用的过程,防止栈溢出 2.程序分析 【算法实现】 程序第一遍统计原数据中各字符出现的频率,利用得到的频率值创建哈夫曼树,并把树的信息保存起来,以便解压时创建同样的哈夫曼树进行解压;第二遍,根据第一遍扫描得到的哈夫曼树进行编码,并把编码后的码字存储。 哈弗曼树的c++描述如下:classHuffman{public:};目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培
5、训计划 HNode*HTree;//哈夫曼树 HCode*HCodeTable;//哈弗曼编码表voidCreateHTree(inta[],intn);//创建哈夫曼树voidCreateTable(charb[],intn);//创建编码表voidEncoding(char*s,intn);//编码 voidDecoding(char*s,char*d,intn);//解码voidDestroyTree(intn); 【存储算法】 对输入的任意长度的字符串s进行统计,统计每个字符的频度,并建立赫夫曼树voidHuffman::CreateHTree(inta[],intn)
6、{HTree=newHNode[2*n-1]; {HTree[i].weight=a[i];HTree[i].lchild=-1;HTree[i].rchild=-1;HTree[i].parent=-1;} staticintk=0;intbb[1000];staticintx;staticinty;intmin=1000; for(intjj=0;jj=HTree[x].weight){if(HTree[jjj].weight=HTree[y].weight)//maywrong{if(HTree[jj].weight}目的-通过该培训员工可对保安行业有初步了解,并感受到安保行
7、业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 bb[k]=x;k++; int_min=1000; for(intjjj=0;jjj=HTree[x].weight){if(HTree[jjj].weight=0;j--){}if(HTree[j].parent==-1)x=HTree[j].
此文档下载收益归作者所有