数据结构与算法(Java版第5版新工科建设之路计算机类专业规划教材十三五江苏省高等学校重点教材)
- ISBN:9787121393051
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:350
- 出版时间:2020-08-01
- 条形码:9787121393051 ; 978-7-121-39305-1
本书特色
“十二五”普通高等教育本科国家级规划教材“十三五”江苏省高等学校重点教材内容全面、理论基础厚实采用面向对象程序设计思想,展示了Java语言的优越性加强工程应用能力培养教学资源丰富
内容简介
本书是“十二五”普通高等教育本科重量规划教材,也是“十三五”江苏省高等学校重点教材。本书全面系统地介绍数据结构的基础理论和算法设计方法,包括线性表、树、图等数据结构以及查找和排序算法,采用Java语言以面向对象方法设计并实现了这些数据结构及算法。本书精选基础理论内容,重点突出数据结构设计和算法设计,内容涉及的广度和深度符合计算机专业本科的培养目标。通过降低理论难度和抽象性、增强实际应用、强化实践环节等措施,展现“理论基础厚实,采用面向对象程序设计思想,加强工程应用能力培养”的鲜明特色,从而达到增强学生的理解能力和培养应用能力的教学目标。本书配套教学资源齐全。本书可作为普通高等学校计算机及相近专业本科的数据结构、算法课程教材,也可作为从事计算机软件开发和工程应用人员的参考书。
目录
第1章 绪论 1
1.1 数据结构的基本概念 1
1.1.1 为什么要学习数据结构 1
1.1.2 什么是数据结构 2
1.1.3 数据类型与抽象数据类型 5
1.2 算法 9
1.2.1 什么是算法 9
1.2.2 算法分析 11
1.2.3 算法设计与实现 13
习题1 16
实验1 算法设计与分析 17
第2章 线性表 18
2.1 线性表的定义及抽象数据类型 18
2.2 线性表的顺序存储结构和实现 20
2.2.1 线性表的顺序存储结构 20
2.2.2 顺序表类的设计及应用 21
2.3 线性表的存储和实现 32
2.3.1 线性表的链式存储结构 32
2.3.2 单链表 33
2.3.3 循环双链表 43
2.4 排序线性表的存储和实现 46
2.4.1 比较对象大小的方法 46
2.4.2 排序顺序表 48
2.4.3 排序单链表 54
2.5 线性表的应用:多项式的存储和运算 55
2.5.1 一元多项式的存储和运算 55
2.5.2 二元多项式的存储和运算 60
习题2 62
实验2 线性表的基本操作 63
第3章 字符串 65
3.1 字符串抽象数据类型 65
3.2 字符串的顺序存储结构和实现 67
3.2.1 常量字符串 67
3.2.2 变量字符串 75
3.3 字符串的模式匹配 79
3.3.1 Brute-Force模式匹配算法 80
3.3.2 模式匹配应用 82
3.3.3 KMP模式匹配算法 84
习题3 90
实验3 字符串的基本操作和模式匹配算法 91
第4章 栈、队列和递归 94
4.1 栈 94
4.1.1 栈的定义及抽象数据类型 94
4.1.2 栈的存储结构和实现 95
4.1.3 栈的应用 97
4.2 队列 105
4.2.1 队列的定义及抽象数据类型 105
4.2.2 队列的存储结构和实现 106
4.2.3 队列的应用 111
4.2.4 优先队列 112
4.3 递归 114
习题4 120
实验4 栈、队列和递归算法 120
第5章 数组和广义表 124
5.1 数组 124
5.2 特殊矩阵的压缩存储 129
5.2.1 三角矩阵、对称矩阵和对角矩阵的压缩存储 129
5.2.2 稀疏矩阵的压缩存储 131
5.3 广义表 141
5.3.1 广义表定义及抽象数据类型 141
5.3.2 广义表的存储结构和实现 143
习题5 148
实验5 矩阵和广义表的存储和运算 149
第6章 二叉树 151
6.1 二叉树概述 151
6.1.1 二叉树的定义、性质及抽象数据类型 151
6.1.2 二叉树的存储结构 154
6.1.3 二叉树的二叉链表实现 155
6.2 树 169
6.2.1 树的定义及抽象数据类型 169
6.2.2 树的存储结构 171
6.2.3 树/森林的父母孩子兄弟链表实现 172
6.3 二叉树应用 176
6.3.1 Huffman树 176
6.3.2 表达式二叉树 185
习题6 189
实验6 二叉树和树的基本操作 191
第7章 图 194
7.1 图的概念和抽象数据类型 194
7.2 图的存储结构和实现 201
7.2.1 抽象图类,存储顶点集合 201
7.2.2 图的邻接矩阵存储结构和实现 202
7.2.3 图的邻接表存储结构和实现 207
7.2.4 图的邻接多重表存储结构 212
7.3 图的遍历 212
7.3.1 图的深度优先遍历 213
7.3.2 图的广度优先遍历 216
7.4 *小生成树 218
7.5 *短路径 222
7.5.1 单源*短路径 223
7.5.2** 每对顶点间的*短路径 227
习题7 230
实验7 图的存储结构和操作算法 231
第8章 查找 234
8.1 查找基础 234
8.1.1 查找概述 234
8.1.2 二分法查找 237
8.2 索引 239
8.2.1 分块与索引 239
8.2.2 静态索引 241
8.2.3 动态索引 245
8.3 散列表 246
8.4 二叉排序树和平衡二叉树 251
8.4.1 二叉排序树 251
8.4.2 二叉树采用三叉链表存储结构 258
8.4.3** 平衡二叉树 259
8.5 映射 262
8.5.1 映射的定义及接口 262
8.5.2 散列映射 264
8.5.3 树映射 266
习题8 269
实验8 集合和映射的数据结构设计和查找算法设计 270
第9章 排序 274
9.1 插入排序 274
9.1.1 直接插入排序 274
9.1.2 希尔排序 276
9.2 交换排序 278
9.2.1 冒泡排序 278
9.2.2 快速排序 280
9.3 选择排序 282
9.3.1 直接选择排序 282
9.3.2 堆排序 283
9.4 归并排序 286
9.5 线性表的排序算法 288
9.5.1 顺序表的排序算法 289
9.5.2 单链表的排序算法 289
9.5.3 循环双链表的排序算法 292
习题9 293
实验9 排序算法设计 294
第10章 综合应用设计 296
10.1 Java集合框架 296
10.1.1 Arrays数组类 296
10.1.2 集合 297
10.1.3 映射 304
10.2 实现迭代器 305
10.2.1 设计基于迭代器的通用操作 305
10.2.2 提供迭代器的类 307
10.3 算法设计策略 309
10.3.1 分治法 309
10.3.2 动态规划法 311
10.3.3 贪心法 313
10.3.4 回溯法 323
10.4 课程设计的目的、要求和选题 337
附录A ASCII字符与Unicode值 340
附录B Java关键字 341
附录C Java基本数据类型 342
附录D Java运算符及其优先级 343
附录E Java类库(部分) 344
E.1 java.lang语言包 344
E.2 java.util实用包 347
附录F MyEclipse常用菜单命令 349
参考文献 350
作者简介
叶核亚,女,南京工程学院计算机工程学院教师,毕业于南京大学。多年来一直教授"Java程序设计”、"数据结构”等课程,编写的教材荣获普通高等教育"十一五”国家级规划教材、”十二五"普通高等教育本科国家级规划教材等。
-
断代(八品)
¥15.5¥42.0 -
家居设计解剖书
¥29.3¥39.0 -
当代中国政府与政治(新编21世纪公共管理系列教材)
¥30.2¥48.0 -
中医基础理论
¥50.7¥59.0 -
习近平新时代中国特色社会主义思想概论
¥18.2¥26.0 -
编辑审稿实务教程
¥35.1¥45.0 -
社会学概论(第二版)
¥33.0¥55.0 -
古代汉语(第四册)
¥13.3¥35.0 -
当代教育心理学(第3版)(本科教材)
¥23.8¥66.0 -
落洼物语
¥8.4¥28.0 -
EPLAN电气设计
¥29.9¥39.8 -
软件定义网络(SDN)实战教程
¥49.6¥69.8 -
[社版]大汉战神:霍去病传
¥14.0¥40.0 -
介入护理学(案例版)
¥52.4¥69.8 -
学前教育史(第二版)
¥31.2¥48.0 -
西方经济学(宏观部分·第八版)(21世纪经济学系列教材)
¥41.7¥49.0 -
西方经济学(微观部分·第八版)(21世纪经济学系列教材)
¥17.9¥56.0 -
数理经济学的基本方法(第4版)(精)
¥56.9¥79.0 -
老子道德经注校释(精)/新编诸子集成
¥30.1¥43.0 -
科技论文规范写作与编辑(第4版)
¥63.0¥75.0