数据结构(Java版)
-
【作 者】孙琳 张宇
【I S B N 】978-7-5170-3618-0
【责任编辑】李炎
【适用读者群】本专通用
【出版时间】2015-10-16
【开 本】16开
【装帧信息】平装(光膜)
【版 次】第1版第1次印刷
【页 数】284
【千字数】410
【印 张】17.75
【定 价】¥38
【丛 书】高等职业教育精品示范教材(电子信息课程群)
【备注信息】
简介
本书特色
前言
章节列表
精彩阅读
下载资源
相关图书
本书全面系统地介绍了数据结构的基础理论和算法设计方法,对常用的数据结构做了系统的介绍,并结合数据结构的应用以及算法性能评价等内容,进一步使读者理解数据抽象与编程实现的关系,提高用计算机解决实际问题的能力。主要内容包括:数据结构的基本概念、算法描述和算法分析初步、线性表、链表、栈、队列、串、数组、广义表、树、图、查找和排序的各种方法。
本书是用Java语言定义和实现数据结构及算法的,因此本书中第一章第一节简单介绍了Java编程语言。本书结构合理,内容丰富,算法描述清晰,便于自学,可作为高等院校计算机专业和其他相关专业的教材和参考书,也可供从事计算机软件开发的科技工作者参考。
全面系统地介绍了数据结构的基础理论和算法设计方法,对常用的数据结构做了系统的介绍,并结合数据结构的应用以及算法性能评价等内容,进一步使读者理解数据抽象与编程实现的关系,提高用计算机解决实际问题的能力。
编写过程中特别考虑到了面向对象程序设计(OOP)的思想与Java语言的特性,在数据结构的实现上更好地运用了Java语言,并且自始至终强调以面向对象的方式来思考、分析和解决问题。
本书注重理论联系实际,注重基本知识的传授与基本技能的培养。所有算法均使用Java语言实现,并通过测试运行。本书还提供了丰富的教辅材料,内容包括PPT、源代码、课后上机实训、习题解答等,非常适合作为数据结构的教学用书。
“数据结构”是计算机专业的重要基础课,是该专业的核心课程之一,它是一门集技术性、理论性和实践性于一体的课程。Java是现今一种热门的语言,本书在编写过程中特别考虑到了面向对象程序设计(OOP)的思想与Java语言的特性。本书在数据结构的实现上更好地运用了Java语言,并且自始至终强调以面向对象的方式来思考、分析和解决问题。
本书在编写过程中特别考虑到了Java与对象,Java语言是完全面向对象的、简单高效、与平台无关、支持多线程、具有安全性和健壮性等特点,为教师和学生提供了一种精心设计并经过教学检验的方式,借助Java讲授ADT和对象。本书教给学生如何使用线性表、词典、栈、队列等来组织数据。利用这些数据组织方式,学生们将学到算法设计的相关技术。
本书共9章。第1章简单介绍Java语言,阐述数据、数据结构和算法等基本概念。第2章至第7章分别讨论线性表、链表、栈、队列、串、数组、广义表、树以及图的基本数据结构及应用。本书第9章排序给出了多种经典排序方法,全部是用Java语言描述编写,并经过测试运行。
本书注重理论联系实际,注重基本知识的传授与基本技能的培养。本书还提供了丰富的教辅材料,内容包括PPT、源代码、课后上机实训、习题解答等,非常适合作为数据结构的教学用书。
本书由孙琳、张宇担任主编,肖奎、胡双、董宁任副主编,其中第1、2章由胡双编写,第3、4章由肖奎编写、第5、6章由张宇编写,第7、8、9章由孙琳和董宁编写。全书由罗炜主审。李礼、余璐、计菲、夏杰等几位老师提供了丰富的案例与实践素材,并参与部分章节的编写,在此一并表示感谢!
本书编写过程中参考了许多作者的大量文献资料和国内外优秀教材,中国水利水电出版社对本书的出版给与了大力支持和帮助,作者在此一并致以诚挚的谢意。
由于编写时间紧张,编者水平有限,难免存在疏漏,敬请读者批评指证。
编 者
2015年6月
前言
第1章 绪论 1
1.1 Java简介 1
1.1.1 Java编程语言 1
1.1.2 Java虚拟机 2
1.2 数据结构概述 2
1.2.1 学习数据结构的必要性 2
1.2.2 什么是数据结构 3
1.2.3 基本概念和术语 4
1.2.4 数据的逻辑结构 5
1.2.5 数据的存储结构 7
1.3 算法的描述和算法分析 8
1.3.1 算法的描述 8
1.3.2 影响算法效率的因素 9
1.3.3 算法效率的评价 10
1.3.4 算法的存储空间需求 12
本章小结 13
上机实训 14
习题 15
第2章 线性表 17
2.1 线性表的逻辑结构 17
2.2 线性表的顺序存储结构 19
2.2.1 线性表的顺序存储结构 19
2.2.2 线性表在顺序存储结构下的运算 20
2.3 线性表的链式存储 25
2.3.1 单向链表 25
2.3.2 循环链表 33
2.3.3 双向链表 34
2.4 一元多项式的表示及相加 41
本章小结 47
上机实训 47
习题 48
第3章 栈和队列 49
3.1 栈 49
3.1.1 栈的定义及其运算 49
3.1.2 栈的顺序存储结构 51
3.1.3 栈的链式存储结构 55
3.2 队列 60
3.2.1 队列的定义及其运算 60
3.2.2 队列的顺序存储结构 61
3.2.3 队列的链式存储结构 71
本章小结 76
上机实训 76
习题 77
第4章 串 78
4.1 串的基本概念 78
4.1.1 串的定义 78
4.1.2 主串和子串 79
4.2 串的存储结构 79
4.3 串的基本运算及其实现 80
4.3.1 字符串的基本运算 80
4.3.2 串的基本运算实现 83
4.4 文本编辑 89
本章小结 90
上机实训 91
习题 91
第5章 多维数组和广义表 92
5.1 多维数组的概念 92
5.2 多维数组的存储结构 93
5.2.1 行优先顺序存储 94
5.2.2 列优先顺序存储 94
5.3 特殊矩阵及其压缩存储 95
5.3.1 特殊矩阵 95
5.3.2 压缩存储 97
5.4 稀疏矩阵 99
5.4.1 稀疏矩阵的存储 99
5.4.2 稀疏矩阵的运算 117
5.5 广义表 123
5.5.1 广义表的定义和性质 123
5.5.2 广义表的存储结构 124
5.5.3 广义表的基本运算 127
本章小结 136
上机实训 137
习题 137
第6章 树 139
6.1 树的结构定义与基本操作 139
6.1.1 树的定义 139
6.1.2 树的存储结构 140
6.1.3 树的广义表表示 141
6.2 二叉树 141
6.2.1 二叉树的定义 141
6.2.2 二叉树的性质 142
6.2.3 二叉树的存储结构 144
6.2.4 二叉树类定义 145
6.2.5 树与二叉树的相互转换 146
6.3 二叉树的遍历 147
6.3.1 先序(根)遍历 148
6.3.2 中序(根)遍历 148
6.3.3 后序(根)遍历 149
6.3.4 层次遍历 149
6.4 线索二叉树 153
6.4.1 线索二叉树的定义 154
6.4.2 中序线索二叉树 159
6.5 二叉排序树 163
6.5.1 二叉排序树的定义 163
6.5.2 二叉排序树的生成 164
6.5.3 删除二叉排序树上的结点 165
6.6 哈夫曼树和哈夫曼算法 165
6.6.1 哈夫曼树的定义 165
6.6.2 构造哈夫曼树—哈夫曼算法 167
6.6.3 哈夫曼树的应用 168
本章小结 170
上机实训 171
习题 171
第7章 图的基本知识 172
7.1 图的基本知识 172
7.1.1 图的定义 172
7.1.2 图的相关术语 173
7.1.3 图的基本操作 177
7.2 图的存储结构 177
7.2.1 邻接矩阵 177
7.2.2 邻接表 179
7.3 图的遍历 180
7.3.1 深度优先搜索遍历 180
7.3.2 广度优先搜索遍历 182
7.4 最小生成树 187
7.5 最短路径 197
7.5.1 单源点最短路径 198
7.5.2 所有顶点对之间的最短路径 204
7.6 拓扑排序 211
本章小结 213
上机实训 213
习题 214
第8章 查找 216
8.1 查找的基本概念 216
8.2 静态查找表 218
8.2.1 顺序查找 218
8.2.2 折半查找 220
8.2.3 分块查找 225
8.3 动态查找表 226
8.4 哈希表 231
8.4.1 哈希表和哈希函数的定义 231
8.4.2 哈希函数的构造方法 233
8.4.3 处理冲突的方法 235
本章小结 240
上机实训 240
习题 240
第9章 排序 242
9.1 排序基本概念 242
9.2 插入排序 244
9.2.1 直接插入排序 244
9.2.2 折半插入排序 247
9.2.3 希尔排序 247
9.3 交换排序 248
冒泡排序 248
9.4 堆排序 250
9.5 快速排序 256
9.6 归并排序 260
9.7 基数排序 263
9.8 外部排序 265
9.9 各种排序方法的比较 266
本章小结 269
上机实训 269
习题 269
参考文献 271
- Linux系统管理(openEuler版) [主编 许兴鹍 黄君羡]
- Web前端开发从学到用完美实践 [阮晓龙 冯顺磊 编著]
- 用英语讲中国故事(全视频 彩色版)上、下册 [主编 谢亮亮 汪洋]
- 新时代大学生美育教育 [穆林 刘苍劲 彭圣芳]
- 电子商务英语 [丁文毅 严慧]
- 智能可穿戴项目化教程 [曾文波 陈赵云]
- 视觉设计解析与实战教程 [姜春磊 杨晓]
- 电子产品制图与制版案例教程 [邹莉莉 苏文斌 贺小艳]
- 设计新维度:CMF元素与创新产品设计 [彭小鹏]
- 园林树木识别与应用 [主编 张玉泉]
- 文本信息处理与应用 [主编 何黎松 姚香秀]
- 工业机器人编程及应用(第二版) [主编 向艳芳 胡月霞]
- C语言程序设计(第二版) [主编 刘祖珉 赵仕波]
- 数据分析与应用 [主编 孙伟 王兰芹]
- Linux操作系统配置与管理项目化教程(第二版) [主编 白玉羚 刘金明 闫 淼]
- Ansys SpaceClaim直接建模与仿真指南 [蔡宜时 编著]
- 基于大数据的智慧农业管理平台关键技术研究与实践 [周永福 著]
- 健美运动 [戴显岩]
- Python程序开发基础(AI+微课版) [赵艳莉 曾鑫]
- 大学生心理困境突围之路 [张珏 著]
- 机器学习基础与实践 [主编 李晓峰 胥文婷 李云波]
- 大模型应用实战 DeepSeek+即梦AI+剪映重塑创作 [丁红 杨彦彦 丁丁 编著]
- HarmonyOS从入门到精通 [陈赵云 周永福 杨 浪]
- 用英语发现世界:欧美文化篇 [李小丽 张薇 编著]
- 大学体育教程 [戴显岩]
- 新一代信息技术 [李佼辉 任雪冬]
- 轨道交通类专门用途英语教程 [李德华主编 商晔副主编]
- 建设工程项目团队知识异质性对团队绩效的影响研究 [胡可]
- 新时代元阳梯田 云南现代化高原立体灌区 前世 今生 未来 [云南省水利水电勘测设计研究院 ]
- 网络工程师章节习题与考点特训(适配第6版考纲) [夏杰 编著]

