数据结构 哈弗曼树的编译码 课程设计 实验报告

数据结构 哈弗曼树的编译码 课程设计 实验报告

ID:13262348

大小:105.13 KB

页数:16页

时间:2018-07-21

数据结构 哈弗曼树的编译码 课程设计 实验报告_第1页
数据结构 哈弗曼树的编译码 课程设计 实验报告_第2页
数据结构 哈弗曼树的编译码 课程设计 实验报告_第3页
数据结构 哈弗曼树的编译码 课程设计 实验报告_第4页
数据结构 哈弗曼树的编译码 课程设计 实验报告_第5页
资源描述:

《数据结构 哈弗曼树的编译码 课程设计 实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据结构课程设计设计题目:哈弗曼树的编译码课题名称哈弗曼树的编译码院系年级专业学号姓名成绩课题设计目的与设计意义1、课题设计目的:(1)掌握哈弗曼树的基本概念及存储结构.(2)理解哈弗曼树的建立算法.(3)运用哈弗曼树进行编码和译码.2、课题设计意义:(1)哈弗曼树的编译码具有较强的可应用性和实践性,在课程设计的过程中,不但有自己的独立思考,还有借助各种资料来帮助我们完成整个系统。(2)通过设计此课程,让我们对老师课上的讲述有了更深的理解,让所学有所思。(3)哈弗曼树的编译码具体应用在生活中,使我们明白了数据结构这一课程在实际生活中

2、具有重要意义。指导教师:年月日目录1课程设计的目的和意义12需求分析3(1)问题描述:3(2)问题补充3(3)具体介绍33系统设计4(1)设计思路及方案4(2)模块的设计与介绍44系统调试:8(1):哈夫曼树的建立和编码的结果如图2:8(2):哈夫曼译码如图4:85小结96参考文献97附录源程序101课程设计的目的和意义在当今信息爆炸时代,如何采用有效的数据压缩技术来节省数据文件的存储空间和计算机网络的传送时间已越来越引起人们的重视。哈夫曼编码正是一种应用广泛且非常有效的数据压缩技术。哈夫曼编码的应用很广泛,利用哈夫曼树求得的用于通

3、信的二进制编码称为哈夫曼编码。树中从根到每个叶子都有一条路径,对路径上的各分支约定:指向左子树的分支表示“0”码,指向右子树的分支表示“1”码,取每条路径上的“0”或“1”的序列作为和各个对应的字符的编码,这就是哈夫曼编码。通常我们把数据压缩的过程称为编码,解压缩的过程称为解码。电报通信是传递文字的二进制码形式的字符串。但在信息传递时,总希望总长度尽可能最短,即采用最短码。作为信息管理专业的学生,我们应该很好的掌握这门技术。在课堂上,我们能学到许多的理论知识,但我们很少有过自己动手实践的机会!课程设计就是为解决这个问题提供了一个平台

4、。在课程设计过程中,我们每个人选择一个课题,认真研究,根据课堂讲授内容,借助书本,自己动手实践。这样不但有助于我们消化课堂所讲解的内容,还可以增强我们的独立思考能力和动手能力;通过编写实验代码和调试运行,我们可以逐步积累调试C程序的经验并逐渐培养我们的编程能力、用计算机解决实际问题的能力。在课程设计过程中,我们不但有自己的独立思考,还借助各种参考文献来帮助我们完成系统。更为重要的是,我们同学之间加强了交流,在对问题的认识方面可以交换不同的意见。同时,师生之间的互动也随之改善,我们可以通过具体的实例来从老师那学到更多的实用的知识。12

5、数据结构课程具有比较强的理论性,同时也具有较强的可应用性和实践性。课程设计是一个重要的教学环节。我们在一般情况下都能够重视实验环节,但是容易忽略实验的总结,忽略实验报告的撰写。通过这次实验让我们明白:作为一名大学生必须严格训练分析总结能力、书面表达能力。需要逐步培养书写科学实验报告以及科技论文的能力。只有这样,我们的综合素质才会有好的提高。122需求分析(1)问题描述:输入权的个数,对每一个字符进行编码,编码完成后再对其编码进行译码。(2)问题补充:1,以字符出现字数作为权值,构建哈夫曼树,并将哈夫曼树的存储结构的初态和终态进行输出

6、;2.对每个字符进行编码并编码,然后对所编码进行破译。(3)具体介绍:在本课题中,我们以每个字符出现次数作为权值,调用ChuffmanTree()函数构建哈夫曼树;并调用print1()和print2()函数将哈夫曼的存储结构的初态和终态进行输出。然后调用HuffmanEncoding()函数对哈夫曼树进行编码,调用coding()函数编码;再调用decode()对编码进行译码,再输出至界面。至此,整个工作就完成了。结束哈夫曼译码哈弗曼编码建立哈弗曼树输入对应的权值与字符输入权个数开始图1主函数流程图123系统设计(1)设计思路及方

7、案 本课题是用最优二叉树即是哈弗曼树来实现哈弗曼编译码。假设每个字符出现的次数,把次数与字符联系起来,建立哈夫曼数,再利用哈夫曼数得出哈夫曼编码,最后译码。哈夫曼树创建哈夫曼树哈夫曼树编码创建哈夫曼树哈夫曼编译码模块图2(2)模块的设计与介绍①建立哈弗曼树1:根据给定的n个权值w1,w2,w3,......,wn构成n个二叉树的森林F={T1,T2,T3,......,Tn},其中每棵二叉树T1中都只有一个权值为w1的根结点。其左右子树均空。2:在森林F中选出两棵根结点的权值最小的树(当这样的树不止两棵树时,可以从中任选两棵),将这

8、两棵树合并成一棵树,为了保证新树仍是二叉树,需要增加一个新结点作为新树的根分别作为新树的左右孩子(谁左,谁右无关紧要),将左右孩子的权值之和作为新根的权值。3:对新的森林F重复(2),直到森林F中只剩下一棵树为止。这棵树便是哈弗曼树。

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

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

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