首页 >  毕业论文  > 正文

《数据结构》抽象数据类型模板库及常用算法的java实现

数据结构在计算机科学中是一门综合性的专业基础课,它不仅涉及到计算机硬件(特别是编码理论、存储装置和存取方法等)的研究范围,而且和计算机软件的研究有着密切的关系。该课程是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。为解决《数据结构》课程中ADT(抽象数据类型)定义和Java语言包的操作名称不一致问题,方便学习和使用,开发了一个严格按照《数据结构》定义的类型模板库,并实现了常用排序算法。该类库具有操作便捷、可读性好、易于维护等特点;对于深化对数据结构算法的理解,提高计算机程序设计水平具有很好的促进作用;而且具有一定的实用价值,能有效地改善数据结构算法教学的质量和效率,对于其他类似项目也有很大的借鉴意义。
[关键词] 数据结构;抽象数据类型;排序算法;Java
2.2  算法
算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量 [11]。
3  项目分析
3.1  项目总体概述
该项目分为两大模块:抽象数据类型模板库和常用算法模板库。抽象数据类型模板库包括了:顺序表、单链表、栈、队列和二叉链表。常用算法模板库主要是由几个常用排序算法构成,包括:直接插入排序、冒泡排序、简单选择排序、快速排序和堆排序。
3.2  需求分析
3.2.1  用户需求
• 每个数据类型的软件模块通常应包含定义、表示和实现三个部分;
• 数据类型名称及排序算法的名称严格按照《数据结构》书上的标准命名,方便使用;
• 代码中有足够且清晰的注释,便于学习和教学;
• 程序可读性强、健壮且高效,可直接调用。
3.2.2  性能需求
操作简单方便、稳定性高,尤其是一些接口的设计方便以后的扩展,可以极大地提高编码人员的工作效率和,将编码人员从繁琐的编码中解脱出来。
3.2.3  其他需求
在代码部分,需要对线性表、单链表、栈、队列和二叉链表等做出详细的定义和注释;最后,作为我们设计的“JDK部分”,方便使用者对该模板库的了解和操作,最后给出了每个模块的详细操作说明书,让使用者更好地掌握并使用该系统。
3.3  可行性分析
可行性分析的任务是从技术上、经济上、操作上分析解决的问题是否可行。可行性研究的目的就是用最小的代价在尽可能短的时间内确定系统目标和规模是否可行,是否能够解决,是否值得解决。
3.3.1  技术条件方面的可行性
根据该模板库的功能、性能及实现系统的各项约束条件和系统目标来衡量,所需的技术java编程基础已经具备。虽然没有学过Java版数据结构,但曾修过C语言版数据结构,对顺寻表、单链表、栈、队列、二叉链表都有所了解,思想都是相通的。对使用的开发工具JCreator、Myeclipse也较熟悉,利用现有的技术条件完全可以达到该项目所要实现的功能目标。同时,该项目的开发时间较为充裕,预计可以在规定期限内完成开发。
3.3.2  硬件条件方面的可行性
计算机已经安装有所有必备的软件及相应的软件测试设备,各项条件良好。
3.3.3  操作方面的可行性
各个模块完成后封装,用户使用该类库时只需在所建工程中直接导入该JAR包,就可以直接使用,方便简单。
目    录
1 绪论 1
1.1 开发背景与意义 1
1.2 项目目标 3
1.3 开发现状 3
1.4 开发环境 3
1.5 开发过程 3
2 背景知识介绍 4
2.1 抽象数据类型(ADT) 4
2.2 算法 4
3 项目分析 5
3.1 项目总体概述 5
3.2 需求分析 5
3.2.1 用户需求 5
3.2.2 性能需求 5
3.2.3 其他需求 5
3.3 可行性分析 5
3.3.1 技术条件方面的可行性 5
3.3.2 硬件条件方面的可行性 6
3.3.3 操作方面的可行性 6
3.3.4 社会因素方面的可行性 6
3.3.5 市场因素方面的可行性 6
3.4 项目目标 6
4 设计 6
4.1 项目结构 6
4.1.1 总体功能模块图 6
4.1.2 功能各模块简单介绍 7
4.2 设计的总体思路 7
4.3 详细设计 8
4.3.1 抽象数据类型模板库设计 8
4.3.2 排序算法模板库设计[15] 12
4.4 模板库操作详述 14
4.4.1 顺序表SqList方法摘要 14
4.4.2 单链表LinkList方法摘要 14
4.4.3 栈SqStack方法摘要 15
4.4.4 队列SeqQueue方法摘要 15
4.4.5 二叉链表方法摘要 15
5 类库发布和测试 16
5.1 发布类库 16
5.2 使用类库 17
5.3 测试环境 17
5.4 测试的基本原则 17
5.5 测试的重要性和目的 18
5.5.1 测试的重要性 18
5.5.2 测试的目的 18
5.6 测试的步骤 18
5.7 测试的主要内容 18
5.8 部分过程测试结果 19
5.8.1 顺序表测试结果: 19
5.8.2 直接插入排序测试结果: 20
5.8.3 冒泡排序测试结果: 20
5.8.4 简单选择排序测试结果: 20
5.8.5 快速排序测试结果: 21
5.8.6 堆排序测试结果: 21
5.8.7 在MyEclipse中新建测试工程并导入JAR包 21
5.9 测试结论 22
结束语 23
参考文献 24
致谢 25
 

以上是本题目部分介绍,若需要完整版或不符合您的要求,请联系客服微信:ztopmind  > 或者加QQ 840612233

上一篇:教学网站系统的设计与实现

下一篇:弘道运动医学诊所医疗管理系统

相关文章: