数据结构(Java语言描述)

提供教学课件、源代码、实训实验、教学大纲、微课视频
分享 推荐 4 收藏 39 阅读 7.8K
罗福强 (作者) 978-7-115-59539-3

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

1.以Java语言为工具,用面向对象的思想完成算法实现
2.知识结构完整,针对数据结构的常用算法,提供完整的Java源代码实现
3.注重实践与应用能力培养,坚持综合应用能力和创新思维培养并举

内容摘要

“数据结构”课程是国内涉及程序设计的相关专业的基础课程。为了有利于促进新兴信息技术(例如:云计算、大数据、物联网、人工智能、区块链、边缘计算等)人才培养,本书强化了强化循环队列、矩阵、二叉排序树、平衡二叉树、最小生成树、AOV 网等的复杂数据结构的分析、设计、实现。本书共 9 章,可划分为四个部分。第一部分(第 1 章)是数据结构的基本概念部分;第二部分(第 2~6 章)是基本的数据
结构部分,包括线性结构(线性表、栈、队列、串、矩阵、广义表)与非线性结构(树、图);第三部分(第
7~8 章)是基本技术部分,包括查找与排序方法;第四部分(第 9 章)是综合项目实训部分,通过“校园导游系统设计”案例展示数据结构的应用与实现过程。本书面向应用型本科院校学生,立足于把数据结构的基本概念和基本算法讲清楚,讲透彻,知识结构完整,提供大量的应用案例,不仅配备了丰富、符合教学目标的课后习题,还配备了富有针对性的实训任务清单和部分微课视频,因此既方便教学,又方便自学。
本书可作为应用型高等院校涉及程序设计的相关专业的数据结构课程的教材或参考资料,也可供相关从业人员参考使用。

诚邀您加入【人邮社数据结构教师交流群】

目录

第1章
概述 1
1.1 数据结构的作用和意义 2
1.1.1 数据结构的作用 2
1.1.2 数据结构的意义 2
1.2 基本概念和术语 5
1.2.1 数据结构中的常用术语 5
1.2.2 数据的逻辑结构 8
1.2.3 数据的物理结构 9
1.3 面向对象的数据结构表示 10
1.3.1 Java语言面向对象基础 10
1.3.2 面向对象的抽象数据类型 13
1.3.3 使用Java语言描述数据结构的优势 15
1.4 算法和算法分析 16
1.4.1 算法的基本概念 16
1.4.2 算法的描述 17
1.4.3 算法效率的量度 18
1.4.4 算法效率分析 18
1.5 习题 21
第2章
线性表 24
2.1 线性表的逻辑结构 25
2.1.1 线性表的概念 25
2.1.2 线性表的基本操作 26
2.2 线性表的顺序表示和实现 26
2.2.1 线性表的顺序表示 26
2.2.2 顺序表的实现 27
2.2.3 顺序表的应用——顺序表的合并、混洗与拆分 33
2.3 线性表的链式表示和实现 35
2.3.1 线性表的链式表示 35
2.3.2 单链表的实现 36
2.3.3 循环链表 41
2.3.4 双向链表 43
2.3.5 链表的应用——链表合并、约瑟夫问题与一元多项式相加 45
2.4 习题 50
2.5 实训 52
第3章
栈和队列 54
3.1 栈 55
3.1.1 栈的定义及基本运算 55
3.1.2 顺序栈 56
3.1.3 链栈 58
3.2 队列 60
3.2.1 队列的定义及基本运算 60
3.2.2 顺序队列 61
3.2.3 链队列 65
3.3 栈和队列的应用举例 67
3.3.1 栈的应用之一:数制转换 67
3.3.2 栈的应用之二:括号匹配 69
3.3.3 栈的应用之三:表达式求值 70
3.3.4 队列应用之一:模拟服务台前的
排队现象问题 74
3.3.5 队列应用之二:消息队列 76
3.4 习题 78
3.5 实训 79
第4章
串、矩阵和广义表 81
4.1 串及其运算 82
4.1.1 串的基本概念 82
4.1.2 串的基本操作 82
4.2 串的顺序存储与实现 83
4.2.1 顺序存储结构 83
4.2.2 串的实现 83
4.2.3 模式匹配 85
4.3 矩阵 87
4.3.1 特殊矩阵 87
4.3.2 稀疏矩阵 89
4.4 广义表 90
4.4.1 广义表的逻辑结构 90
4.4.2 广义表的存储结构及实现 91
4.5 串的应用:文本编辑 92
4.6 矩阵的应用:矩阵运算与实现 94
4.6.1 矩阵运算的意义 94
4.6.2 矩阵的加法 96
4.6.3 矩阵的乘法 97
4.6.4 矩阵的转置 98
4.6.5 矩阵的卷积 98
4.6.6 矩阵的池化 99
4.7 习题 101
4.8 实训 101
第5章
树和二叉树 103
5.1 树的定义和基本术语 104
5.1.1 树的定义 104
5.1.2 树的表示方法 104
5.1.3 树的术语 105
5.2 二叉树 106
5.2.1 二叉树基本概念 106
5.2.2 二叉树的性质 107
5.2.3 二叉树的存储结构 107
5.2.4 二叉树的基本操作及实现 110
5.3 二叉树遍历 112
5.3.1 二叉树遍历基本概念 112
5.3.2 线索二叉树 116
5.3.3 线索二叉树的基本操作实现 117
5.4 树和森林 120
5.4.1 树的存储方式 120
5.4.2 树和森林与二叉树之间的转换 122
5.4.3 树的遍历 124
5.4.4 森林的遍历 124
5.5 二叉树的应用:哈夫曼树与哈夫曼编码 125
5.5.1 哈夫曼树 125
5.5.2 哈夫曼树的构造算法 127
5.5.3 哈夫曼编码 128
5.6 二叉树的应用:二叉查找树与查找 130
5.6.1 二叉查找树 130
5.6.2 二叉查找树的查找 131
5.6.3 寻找双亲节点 132
5.6.4 二叉查找树的插入 132
5.6.5 二叉查找树的删除 133
5.7 习题 136
5.8 实训 139
第6章
图 140
6.1 图的定义及其常用术语 141
6.1.1 图的定义 141
6.1.2 图的常用术语及含义 141
6.2 图的存储结构 143
6.2.1 邻接矩阵 144
6.2.2 邻接表 147
6.3 图的遍历 152
6.3.1 深度优先搜索 152
6.3.2 广度优先搜索 155
6.4 生成树和最小生成树 157
6.4.1 生成树 157
6.4.2 最小生成树 158
6.5 图的应用 165
6.5.1 最短路径 165
6.5.2 拓扑排序 169
6.5.3 关键路径 171
6.6 习题 174
6.7 实训 178
第7章
查找 179
7.1 基本概念 180
7.2 静态查找表 181
7.2.1 顺序查找 181
7.2.2 折半查找 183
7.3 动态查找表 186
7.3.1 平衡二叉树 187
7.3.2 B?树 192
7.3.3 B+树 195
7.4 哈希表 196
7.4.1 哈希表的概念 196
7.4.2 哈希函数的构建 197
7.4.3 处理冲突 198
7.4.4 哈希表的查找及分析 200
7.5 习题 201
7.6 实训 204
第8章
排序 205
8.1 基本概念 206
8.2 插入排序 207
8.2.1 直接插入排序 207
8.2.2 希尔排序 209
8.3 交换排序 210
8.3.1 冒泡排序 210
8.3.2 快速排序 212
8.4 选择排序 214
8.4.1 简单选择排序 214
8.4.2 堆排序 215
8.5 归并排序(二路归并排序) 218
8.6 各种排序算法的比较 220
8.7 习题 221
8.8 实训 223

第9章
综合项目实训 225
9.1 实训题目及设计要求 226
9.1.1 评分参考评准 226
9.1.2 智能仓库控制系统 226
9.1.3 运动会分数统计 227
9.1.4 学生成绩管理系统 227
9.1.5 飞机售票系统 228
9.1.6 仓库货物管理系统 228
9.1.7 校园导游系统 228
9.2 实训与课程设计报告模板 229
参考文献 242

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

罗福强,川大锦城学院电子信息学院副院长,四川省高新技术国际交流促进学会大数据校企联盟专委会秘书长,微软MCTS认证专家,在我社出版过《Visual C#程序设计》等畅销教材。

推荐用户

相关图书

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