- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验三HUFFUMA编码的构造
实验三 Huffuma编码的构造
【实验】【实验】【实验目的要求】1.理解和掌握树型结构的特点和基本操作;
2.利用数组存储哈夫曼编码并定义所需的属性结构;
3.掌握哈夫曼树的结构特点和哈夫曼编码的构造算法及应用。
【实验类型】 验证性
【实验时数】 学时
【参考资料】 1.数据结构2.【实验内容】
哈夫曼树利用哈夫曼树的的构造算法进行哈夫曼编码的构造。
(1) 定义 (2) 仔细理解和分析哈夫曼编码构造算法,编写程序;
(3) 调试并修改程序,得到正确的实验结果。
【实验】
typedef struct
{ char ch; 表示结点的字符值;
int weight; 结点的权值
int lchild,rchild,parent; 结点左、右孩子和双亲结点在数组中的下标值
}HTNODE;
HTNODE huftree[2n-1]; 定义了一维数组huftree,数组长度为2n-1。
定义一个数组cd,专门用于存放各个叶子结点代表的字符值和各个叶子结点字符对应的编码。因此,该数组元素应该包含两部分:
typedef struct
{ char *code; 用于指向字符对应的编码字符串
char leaf; 叶子结点代表的字符值
}CODE;
所以,数组定义为:CODE cd[n];
3、用一个整型数组w来存放按升序排列的叶子的权值。 int w[n];
4、算法分析:(以{a,b,c,d,e}权值分别为1,2,3,4,5的字符为例)
(1)用一维数组huftree来存储哈夫曼树(0号元素不用),初始状态为:
(2) 选取结点生成内部结点,一共要生成n-1个内点(用k来表示生成内点的个数)。
每次都要选取从未用过的当前权值最小的两个结点来生成新的结点,则在数组中就要选取parent为0,权值最小的两个结点生成内点,通过课堂讲解可以知道符合条件的两个结点的下标s1和s2与当前生成的内点个数k之间存在关系:s1=2k-1;s2=s1+1;由它们产生的内点的权值:
sum=huftree[s1].weight+huftree[s2].weight;
然后,将生成的新内点按权值升序插入到数组huftree中,可以采取从后往前进行权值比较,直到找到合适的位置(j+1)将其插入,并且将产生的这个新内点与它的左右孩子结点(s1结点和s2结点)的关系进行体现:
huftree[s1].parent=j+1;
huftree[s2].parent=j+1;
huftree[j+1].lchild=s1;
huftree[j+1].rchild=s2;
依次类推,最终的huftee数组为:
至此,整棵产生的哈夫曼树已经全部完成,并存储在数组huftree中,产生的哈夫曼树为:
由树中叶子结点开始向上回溯,从叶到根。若当前结点是左孩子,则得‘0’,否则得‘1’,得到了反序的编码字符串存入到字符数组temp中,然后根据得到的编码串的实际长度来开辟空间,由数组cd中code指针域指向,再存放各个叶结点代表的字符值,得到相应的编码对照表:
您可能关注的文档
- 深入沪深300股指期货.doc
- 神奇老屋大改造!10W变出梦幻田园小家(组图).doc
- 沈从文家世探谜.doc
- 沈阳师范大学2011年暑假翔飞英国短期留学招生简章.doc
- 神奇的MORLEY定理.doc
- 审计案例研究期末复习重点(2006年).doc
- 审计计划相关知识点图解.doc
- 神舟伴您零距离接触宝岛台湾(华航直飞环岛8日(C线晚班)) - 神舟.doc
- 审定通过品种 - 审定通过品种.doc
- 升降机搭拆措施方案.doc
- 2025年广西中考地理二轮复习:专题四+人地协调观+课件.pptx
- 2025年广西中考地理二轮复习:专题三+综合思维+课件.pptx
- 2025年中考地理一轮教材梳理:第4讲+天气与气候.pptx
- 第5讲+世界的居民课件+2025年中考地理一轮教材梳理(商务星球版).pptx
- 冀教版一年级上册数学精品教学课件 第1单元 熟悉的数与加减法 1.1.6 认识1-9 第6课时 合与分.ppt
- 2025年中考一轮道德与法治复习课件:坚持宪法至上.pptx
- 2025年河北省中考一轮道德与法治复习课件:崇尚法治精神.pptx
- 八年级下册第二单元+理解权利义务+课件-2025年吉林省中考道德与法治一轮复习.pptx
- 精品解析:湖南省娄底市2019-2020学年八年级(上)期中考试物理试题(原卷版).doc
- 2025年中考地理一轮教材梳理:第10讲+中国的疆域与人口.pptx
文档评论(0)