网站大量收购闲置独家精品文档,联系QQ:2885784924

哈夫曼树的构造和应用.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
哈夫曼树的构造和应用

《计算机软件技术基础》实验报告 实验名称:实验三 哈夫曼树的应用和实现 实验目的:掌握哈夫曼树的基本构造,并能运用哈夫曼树实现前缀编码。 实验内容:完成下述功能: (1)根据输入的字符和相应的权重建立哈夫曼树,并输出已经建立的相应内容作为检查; (2)运用哈夫曼树实现前缀编码,并输出各字符的编码串; (3)输入一组二进制报文,进行译码,并输出译文。 实验要求: (1) 数据元素为字符,其相应的权值为float; (2)对实验内容进行算法设计,将编制的程序输入计算机,编译运行; (3)程序的实际功能与上述所列功能不完全相符,调试程序,找出问题所在,并纠正。 (4)以教材中P162的例为数据,验证结果,并给出相应的说明。 实验原理:哈夫曼树的构造和应用(流程图)。 1,建立哈夫曼树 ,2,构建哈夫曼编码表 ,3,译码过程是编码的逆过程,算法流程图此处省略。 编译环境:PC中C++ 实验调试及分析处理: 1,实验调试过程中出现以下错误: 分析处理:程序运行出现上述错误,调试很久后发现,此问题主要是在调用译码函数时出错,原因是译码函数与主函数之间数据传递出现问题,修改后问题得到解决。 2,实验调试过程中出现以下错误: 分析处理:程序运行出现上述错误,明显与书本上的例题运行结果不一致,程序也没发现什么大的错误,与同学讨论后发现原因,if(ht[j].parent==0m1ht[j].weight) {m2=m1;k2=k1; m1=ht[j].weight;k1=j; } else if(ht[j].parent==0m2ht[j].weight) 这段程序应该改成if(ht[j].parent==0(m1-ht[j].weight)=0.000001) {m2=m1;k2=k1; m1=ht[j].weight;k1=j; } else if(ht[j].parent==0(m2-ht[j].weight)=0.000001)。改完以后运行结果与课本一致。 3,实验调试过程中出现以下错误: 分析处理:程序运行中出现错误,主要是未理解scanf函数的应用,输入时若是一串二进制数字相邻输入,会当成一个数字读入,导致出错,修改输入方式后,再次运行这个错误消除。 实验结果: 1,哈夫曼树的构造,并输出已经建立的相应内容作为检查; 2,运用哈夫曼树实现前缀编码,并输出各字符的编码串 3. 输入一组二进制报文,进行译码,并输出译文。 实验结果分析及总结 这次实验的收获主要是对哈夫曼树的结构有了更深入的理解,以及利用哈夫曼树的前缀编码,这是本课程的重点,应该注重学习。本次实验结果基本正确,能完全实现实验要求的功能,但也存在不足的地方,如运行界面不美观,程序语句不精练,有些地方可以更加简单等等。这些都需要我在以后的实验中着重注意并加以学习,另外,这次实验编程个人所花时间较长,这说明我对知识点不够熟悉,掌握程度不够,在今后的学习中应该更加严谨,虚心向同学学习,不懂的地方应该先自己理解再交流。 参考资料:《计算机软件技术基础教程》,刘彦明;《C语言设计》。 附:实验三 哈夫曼树的应用和实现 源程序。 #includestdio.h #define maxbit 10 /*定义哈夫曼编码最大长度*/ #define maxvalue 10000 /*定义最大权值常量*/ #define maxnodenumber 100 /*定义结点最大数目常量*/ typedef struct /*定义结点结构*/ {float weight; char data; int parent,lchild,rchild; }htnode; typedef struct /*定义保存一个叶子结点哈曼编码的结构*/ {int bit[maxbit]; int start; }hcodetype; hcodetype cd[maxbit]; void main()

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档