- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机学院信息管理与信息系统专业
数据结构课程设计
题 目: 哈夫曼树的应用
班 级: 信管09101班
姓 名: 赵林芬
学 号: 200917020114
同组人姓名: 陈立芳 王红
起 迄 日 期: 2011.03.01-03.04
课程设计地点: 系办公楼E3-A513
指导教师: 孙叶枫
评阅意见:
成绩评定:
评阅人: 日期: 完成日期:2011年3月4日
目录
1、设计目的 3
2、需求分析 4
2.1选题的意义及背景 4
2.2 输入/输出形式和输出值的范围 4
3、概要设计 4
3.1设计思想 4
3.2函数间的关系 4
4、详细设计 5
4.1哈夫曼的主要结构 5
4.1.1结构定义 5
4.1.2主要函数声明及功能描述 6
4.2源程序 7
4.2.1头文件 7
4.2.2源文件 8
5、程序测试结果及问题分析 17
6、总结 18
7、参考文献 18
1.设计目的
数据结构作为一门学科主要研究数据的各种逻辑结构和存储结构,以及对数据的各种操作。因此,主要有三个方面的内容:数据的逻辑结构;数据的物理存储结构;对数据的操作(或算法)。通常,算法的设计取决于数据的逻辑结构,算法的实现取决于数据的物理存储结构。数据结构是信息的一种组织方式,其目的是为了提高算法的效率,它通常与一组算法的集合相对应,通过这组算法集合可以对数据结构中的数据进行某种操作。
在当今信息时代,信息技术己成为当代知识经济的核心技术。我们时刻都在和数据打交道。比如人们在外出工作时找最短路径,在银行查询存款、通过互联网查新闻、以及远程教育报名等,所有这些都在与数据发生关系。实际上,现实世界中的实体经过抽象以后,就可以成为计算机上所处理的数据。
数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。
学习数据结构是为了将实际问题中所涉及的对象在计算机中表示出来并对它们进行处理。通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。通过此次课程设计主要达到以下目的:
了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;
初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
提高综合运用所学的理论知识和方法独立分析和解决问题的能力;
训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
2.需求分析
2.1选题的意义及背景
锻炼我们的编码能力,真正理解数据结构的编码思想,并且锻炼我们的动手能力和成员间的配合,提高程序编写能力。
在信息传递时,希望长度能尽可能短,即采用最短码。赫夫曼编码的应用,就是采用这种有效的数据压缩技术可以节省数据文件的存储空间和计算机网络的传送时间。
2.2 输入/输出形式和输出值的范围
输入信息以加载存档的reading.txt文件为方式,加载不成功,提示出错信息,加载成功后,系统对其编码,并按照选择对各种相关信息存档
3.概要设计
3.1设计思想
哈夫曼树用邻接矩阵作为存储结构,借助静态链表来实现遍历。
利用多重结构体的形式设计出所需的变量类型,还有基本的文件读写知识,同时借助九大子函数结合一个主函数设计了此课程内容,第一部分为信息的读写及统计;第二部分为哈夫曼树及其编码的建立,再将编码信息写进文件;第三部分为给信息加密在写进文件,再在对其翻译。最后的主函数是整个程序的组织者,利用switch选择循环将九大子函数联系起来,画龙点睛。这样整个程序的基本流出就出来了,再根据此流出设计出源程序。
3.2函数间的关系
哈夫曼系统,函数间的关系如图所示:
界面运行图如下:
4、详细设计
4.1哈夫曼的主要结构
4.1.1结构定义:
#define MAXVALUE 1000//定义最大权值
#define MAXBIT 100//定义哈夫曼树中叶子结点个数
typedef struct
{
cha
文档评论(0)