数据结构(Java语言描述)(微课版)

适合高职学生学习的Java版数据结构教材
分享 推荐 0 收藏 16 阅读 2.5K
罗炜 (主审) 孙琳 (作者) 978-7-115-61112-3

关于本书的内容有任何问题,请联系 刘尉

1.本书适用于计算机科学及其他相关专业的本科院校、高等职业院校师生,对于需要参加计算机考试,或者得希望自学计算机软件开发的人员也有较大的帮助。
2.本书全面系统地介绍了计算机科学教育中的一个重要组成部分——数据结构,并以Java语言实现相关的算法。

内容摘要

本书全面、系统地介绍了数据结构的基础理论和算法设计方法,以及数据结构的应用、算法性能评价等内容,使读者进一步理解数据抽象与编程实现的关系,提高用计算机解决实际问题的能力。
本书共10章,分为4个部分。第1部分(第1章)介绍数据结构和算法的基本概念等;第2部分(第2章~第7章)详细讲解不同类型的数据结构,包含线性结构(线性表、链表、栈、队列、串、数组、广义表)和非线性结构(树、图);第3部分(第8章~第9章)介绍程序中经常用到的算法,即查找和排序;第4部分(第10章)是综合实训部分,通过商品管理系统等8个案例展示数据结构实现和应用的过程,并在最后提供综合项目实训与课程设计报告模板。
本书可作为职业院校、应用型本科院校计算机专业和其他相关专业的教材和参考书,也可供从事计算机软件开发的科技工作者参考。

前言

数据结构是计算机专业及相关专业的一门必修课程,地位举足轻重,它是一门集技术性、理论性和实践性于一体的课程,在学习本课程时,需要灵活运用数据结构和算法知识去解决实际问 题。作为应用最广泛的程序设计语言之一,Java 具有很好的封装性,易实现,本书选择 Java 作为开发语言,兼顾了面向对象程序设计(Object-Oriented Programming,OOP)的思想与 Java 语言的特性。通过学习本书内容,读者既能加深对数据结构基本概念的理解和认识,又能提高对各 种数据结构进行运算分析、设计的能力。
本书共 10 章,分为 4 个部分。前三个部分是数据结构基础部分,分别介绍了数据结构和算法的概念,详细讲解了常见的数据结构类型(包括线性结构和非线性结构)和经常用到的算法(包 括查找和排序),最后一部分(第 10 章)是综合实训部分,通过商品管理系统等 8 个案例展示数据结构实现和应用的过程,并在最后提供综合项目实训与课程设计报告模板。
本书在传授专业知识的同时,注重职业素养教育,强化读者的家国情怀和创新发展等意识。由第 2 章“线性表”,一环扣一环,引申出“扣好人生第一粒扣子很重要”的理念;由第 7 章“图”, 引申出规划路线时使用严谨的科学精神进行科学探索、用工匠精神做到精益求精;由第 8 章“查找”中的“折半查找”分而治之的思想,引申出《孙子兵法》,有效激发读者的兴趣,使读者更加深刻地理解算法的基本原理,同时“润物细无声”地开展爱国主义教育。本书提供了丰富的教辅资源,内容包括 PPT、源代码、实训案例、习题解答等,此外,还精心制作了配套微课视频, 全程语音讲解,非常适合作为数据结构的教学用书。
本书由孙琳、姚超担任主编,付宇、胡佳静、张采奕担任副主编,全书由罗炜主审。
由于编者水平有限,教材中难免会有不足或疏漏之处,敬请各界专家和读者朋友批评指正, 我们将不胜感谢。

编者

目录

第1章 绪论 1
1.1 Java 简介 2
1.1.1 Java 语言 2
1.1.2 Java 虚拟机 2
1.2 数据结构概述 3
1.2.1 学习数据结构的必要性 3
1.2.2 什么是数据结构 3
1.2.3 基本概念和术语 4
1.2.4 数据的逻辑结构 6
1.2.5 数据的存储结构 7
1.3 算法的描述和算法分析 8
1.3.1 算法的描述 8
1.3.2 影响算法效率的因素 9
1.3.3 算法效率的评价 10
1.3.4 算法的存储空间需求 12
本章小结 13
习题 13
第2章 线性表 17
2.1 线性表的逻辑结构 18
2.1.1 线性表的概念 18
2.1.2 线性表的基本操作 18
2.2 线性表的顺序表示和实现 19
2.2.1 线性表的顺序表示 19
2.2.2 线性表在顺序存储结构下的运算 20
2.3 线性表的链式表示和实现 25
2.3.1 线性表的链式表示 25
2.3.2 单向链表 25
2.3.3 循环链表 32
2.3.4 双向链表 33
2.3.5 链表的应用 39
本章小结 44
上机实训 44
习题 44
第3章 栈和队列 47
3.1 栈 48
3.1.1 栈的定义及其运算 48
3.1.2 栈的顺序存储结构 49
3.1.3 栈的链式存储结构 52
3.2 栈的应用和举例 56
3.2.1 数制转换 56
3.2.2 后缀表达式求值 57
3.3 队列 60
3.3.1 队列的定义及其运算 61
3.3.2 队列的顺序存储结构 62
3.3.3 队列的链式存储结构 69
3.4 队列的应用和举例 73
本章小结 74
上机实训 75
习题 75
第4 章 串 77
4.1 串的基本概念 78
4.1.1 串的定义 78
4.1.2 主串和子串 78
4.2 串的存储结构 78
4.2.1 串的静态存储 78
4.2.2 串的动态存储 79
4.3 串的基本运算及其实现 79
4.3.1 串的基本运算 79
4.3.2 串的基本运算实现 82
4.4 串操作应用举例 87
本章小结 91
上机实训 91
习题 91
第5章 数组和广义表 93
5.1 数组的概念 94
5.2 数组的顺序表现和实现 95
5.3 矩阵的压缩存储 96
5.3.1 特殊矩阵的压缩存储 96
5.3.2 稀疏矩阵的压缩存储 98
5.4 广义表 113
5.4.1 广义表的定义 113
5.4.2 广义表的存储结构 114
5.4.3 广义表的基本操作 114
本章小结 118
上机实训 119
习题 119
第6章 树 121
6.1 树的结构定义与基本操作 122
6.1.1 树的定义 122
6.1.2 树的结构 122
6.1.3 树的广义表表示 123
6.2 二叉树 123
6.2.1 二叉树的定义 123
6.2.2 二叉树的性质 124
6.2.3 二叉树的存储结构 126
6.2.4 二叉树结点类定义 127
6.2.5 树与二叉树的相互转换 128
6.3 二叉树的遍历 129
6.3.1 前序遍历 130
6.3.2 中序遍历 130
6.3.3 后序遍历 130
6.3.4 层次遍历 131
6.3.5 二叉树遍历代码实现 131
6.4 线索二叉树 134
6.4.1 线索二叉树的定义 134
6.4.2 中序线索二叉树 135
6.5 二叉排序树 137
6.5.1 二叉排序树的定义 137
6.5.2 二叉排序树的生成 138
6.5.3 删除二叉排序树上的结点 138
6.6 哈夫曼树和哈夫曼算法 139
6.6.1 哈夫曼树的定义 139
6.6.2 构造哈夫曼树——哈夫曼算法 140
6.6.3 哈夫曼树的应用 141
本章小结 143
上机实训 144
习题 144
第7章 图 145
7.1 图的基本知识 146
7.1.1 图的定义 146
7.1.2 图的相关术语 146
7.1.3 图的基本操作 149
7.2 图的存储结构 150
7.2.1 邻接矩阵 150
7.2.2 邻接表 151
7.3 图的遍历 153
7.3.1 深度优先搜索遍历 153
7.3.2 广度优先搜索遍历 156
7.4 最小生成树 160
7.4.1 普里姆算法 161
7.4.2 克鲁斯卡尔算法 165
7.5 最短路径 170
7.5.1 单源点最短路径 170
7.5.2 所有顶点对之间的最短路径 175
7.6 拓扑排序 180
本章小结 182
上机实训 182
习题 183
第8章 查找 186
8.1 查找的基本概念 187
8.2 静态查找表 188
8.2.1 顺序查找 188
8.2.2 折半查找 190
8.2.3 分块查找 195
8.3 动态查找表 196
8.4 哈希表 201
8.4.1 哈希表和哈希函数的定义 201
8.4.2 哈希函数的构造 204
8.4.3 处理冲突的方法 205
8.4.4 哈希表的查找及其性能分析 210
本章小结 211
上机实训 211
习题 211
第9章 排序 215
9.1 排序概述 216
9.2 插入排序 217
9.2.1 直接插入排序 217
9.2.2 希尔排序 219
9.3 交换排序 221
9.3.1 冒泡排序 221
9.3.2 快速排序 223
9.4 选择排序 226
9.4.1 简单选择排序 226
9.4.2 堆排序 228
9.5 归并排序 234
9.6 基数排序 236
9.7 各种排序方法的比较 238
本章小结 240
上机实训 240
习题 241
第10章 综合项目实训 242
10.1 实训项目及相关设计要求 243
10.1.1 商品管理系统 243
10.1.2 停车场管理系统 243
10.1.3 算术表达式计算器 243
10.1.4 通讯录管理系统 244
10.1.5 导师负责制管理系统 244
10.1.6 文件压缩与解压缩 244
10.1.7 校园导游咨询系统 245
10.1.8 学生宿舍管理系统 245
10.2 综合项目实训与课程设计报告模板 245
本章小结 256

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

孙琳,高级工程师,双师型教师、中国计算机学会职业教育发展委员会(CCF VC)委员;一直在教学科研一线工作,主要研究方向:大数据技术、智能推荐、数据挖掘。以第一作者在各级刊物上公开发布论文发表论文10余篇,其中全国中文核心论文1篇;编写教材10余本,其中主编教材5本、副主编教材6本;主持省市级教科研课题5项、参与课题7项;申报实用新型专利 1 项,软件著作权 2 件。曾出版《数据结构》《大数据技术与应用》 等教材。

相关图书

人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部