数据结构与算法 Java语言版 版权信息
- ISBN:9787302662747
- 条形码:9787302662747 ; 978-7-302-66274-7
- 装帧:70g胶版纸
- 册数:暂无
- 重量:暂无
- 所属分类:>
数据结构与算法 Java语言版 本书特色
本书特色:(1)注重夯实基础。注重讲解每种数据结构的特点,并结合实例讲解怎样正确地使用相应的数据结构和算法。
(2) 关注实用性。注重结合一些经典问题和实际问题,使读者在学习数据结构和算法后能加深对实际问题的了解,并提高解决某些实际问题的能力。
(3)强调培养能力。精选经典和实用性强的算法思想,并结合经典的问题体现这些算法思想的精髓,有利于帮助读者掌握如何设计和实现高效、优秀的算法。
(4)体现语言特色。特别注重体现Java语言的特色,除了前3章以外,其余各章的大部分代码都体现了Java的特色和Java在算法实现方面的优势。
本书配套资源丰富,包括教学大纲、教学课件、电子教案、程序源码、在线题库和习题答案。
数据结构与算法 Java语言版 内容简介
本书面向有一定Java语言基础的读者,重点讲解数据结构和相关算法以及经典算法思想。本书不仅注重讲解每种数据结构的特点,而且特别注重结合实例讲解怎样正确地使用每种数据结构和相应的算法,强调使用数据结构和算法解决问题。本书精选了一些经典和实用性强的算法思想,并通过解决一些经典的问题体现这些算法思想的精髓。全书共14章,分别是数据结构概述、算法与复杂度、递归算法、数组与Arrays类、链表与LinkedList类、顺序表与ArrayList类、栈与Stack类、队列与ArrayDeque类、二叉树与TreeSet类、散列表与HashMap类、集合与HashSet类、常用算法与Collections类、图论和经典算法思想。本书特别注重体现Java语言的特色,除了前3章以外,其余各章的大部分代码都体现了Java的特色和Java在算法实现方面的优势。
本书可作为计算机相关专业的数据结构与算法的教材,也可作为软件开发等专业人员的参考用书。
数据结构与算法 Java语言版 目录
第1章 数据结构概述
1.1 逻辑结构 ……………………………………………………………………………… 1
1.2 物理结构 ……………………………………………………………………………… 6
1.3 算法与结构 …………………………………………………………………………… 6 习题 1 ……………………………………………………………………………………… 7
第2章 算法与复杂度
2.1 算法 …………………………………………………………………………………… 8
2.2 算法的复杂度 ………………………………………………………………………… 8
2.3 常见的复杂度 ………………………………………………………………………… 10 习题 2 ……………………………………………………………………………………… 22
第3章 递归算法
3.1 递归算法简介 ………………………………………………………………………… 23
3.2 线性递归与非线性递归 ……………………………………………………………… 24
3.2.1 线性递归 ……………………………………………………………………… 24
3.2.2 非线性递归 …………………………………………………………………… 26
3.3 问题与子问题 ………………………………………………………………………… 28
3.4 递归与迭代 …………………………………………………………………………… 30
3.5 多重递归 ……………………………………………………………………………… 33
3.6 经典递归 ……………………………………………………………………………… 35
3.6.1 杨辉三角形 …………………………………………………………………… 35
3.6.2 老鼠走迷宫 …………………………………………………………………… 37
3.6.3 汉诺塔 ………………………………………………………………………… 39
3.7 优化递归 ……………………………………………………………………………… 45 习题 3 ……………………………………………………………………………………… 48
第4章 数组与Arrays类
4.1 引用与参数存值 ……………………………………………………………………… 49
4.1.1 数组的引用 …………………………………………………………………… 49
4.1.2 参数存值 ……………………………………………………………………… 51
4.2 数组与排序 …………………………………………………………………………… 53
4.2.1 快速排序 ……………………………………………………………………… 53
4.2.2 归并排序 ……………………………………………………………………… 57
4.3 数组的二分查找 ……………………………………………………………………… 59
4.3.1 二分法 ………………………………………………………………………… 59
4.3.2 过滤数组 ……………………………………………………………………… 60
4.4 数组的复制 …………………………………………………………………………… 61
4.4.1 复制数组的方法 ……………………………………………………………… 61
4.4.2 处理重复数据 ………………………………………………………………… 63
4.5 数组的比较 …………………………………………………………………………… 64
4.6 公共子数组 …………………………………………………………………………… 65
4.7 数组的更新 …………………………………………………………………………… 69
4.7.1 单值更新 ……………………………………………………………………… 69
4.7.2 动态更新 ……………………………………………………………………… 69
4.8 数组的前缀算法 ……………………………………………………………………… 70
4.9 动态遍历 ……………………………………………………………………………… 71
4.9.1 动态方法 ……………………………………………………………………… 71
4.9.2 编写动态方法 ………………………………………………………………… 72
4.9.3 多线程遍历 …………………………………………………………………… 73
4.10 数组与洗牌 ………………………………………………………………………… 74
4.11 数组与生命游戏 …………………………………………………………………… 76 习题 4 ……………………………………………………………………………………… 79
第5章 链表与LinkedList类
5.1 链表的特点 …………………………………………………………………………… 80
5.2 创建链表 ……………………………………………………………………………… 83
5.3 查询与相等 …………………………………………………………………………… 85
5.4 添加节点 ……………………………………………………………………………… 89
5.5 删除节点 ……………………………………………………………………………… 90
5.6 更新节点 ……………………………………………………………………………… 93
5.7 链表的视图 …………………………………………………………………………… 94
5.8 链表的排序 …………………………………………………………………………… 95
5.9 遍历链表 ……………………………………………………………………………… 97
5.10 链表与数组 ………………………………………………………………………… 103
5.11 不可变链表 ………………………………………………………………………… 104
5.12 编写简单的类创建链表 …………………………………………………………… 104 习题 5 …………………………………………………………………………………… 109
第6章 顺序表与ArrayList类
6.1 顺序表的特点 ……………………………………………………………………… 110
6.2 创建顺序表 ………………………………………………………………………… 111
6.3 顺序表的常用方法 ………………………………………………………………… 113
6.4 遍历顺序表 ………………………………………………………………………… 116
6.5 顺序表与筛选法 …………………………………………………………………… 118
6.6 顺序表与全排列 …………………………………………………………………… 120
6.7 顺序表与组合 ……………………………………………………………………… 125
6.8 顺序表与记录 ……………………………………………………………………… 130
6.9 Vector 类 …………………………………………………………………………… 132 习题 6 …………………………………………………………………………………… 135
第7章 栈与Stack类
7.1 栈的特点 …………………………………………………………………………… 136
7.2 栈的创建与独特的方法 …………………………………………………………… 137
7.3 栈与回文串 ………………………………………………………………………… 139
7.4 栈与递归 …………………………………………………………………………… 140
7.5 栈与 undo 操作 …………………………………………………………………… 141
7.6 栈与括号匹配 ……………………………………………………………………… 143
7.7 栈与深度优先搜索 ………………………………………………………………… 144
7.8 栈与后缀表达式 …………………………………………………………………… 147 习题 7 …………………………………………………………………………………… 152
第8章 队列与ArrayDeque类
8.1 队列的特点 ………………………………………………………………………… 153
8.2 队列的创建与独特的方法 ………………………………………………………… 154
8.3 队列与回文串 ……………………………………………………………………… 156
8.4 队列与加密、解密 ………………………………………………………………… 157
8.5 队列与约瑟夫问题 ………………………………………………………………… 158
8.6 队列与广度优先搜索 ……………………………………………………………… 159
8.7 队列与网络爬虫 …………………………………………………………………… 161
8.8 队列与排队 ………………………………………………………………………… 164 习题 8 …………………………………………………………………………………… 166
第9章 二叉树与TreeSet类
9.1 二叉树的基本概念 ………………………………………………………………… 167
9.2 遍历二叉树 ………………………………………………………………………… 168
9.3 二叉树的存储 ……………………………………………………………………… 170
9.4 平衡二叉树 ………………………………………………………………………… 172
9.5 二叉查询树和平衡二叉查询树 …………………………………………………… 172
9.6 TreeSet 树集………………………………………………………………………… 176
9.7 树集的基本操作 …………………………………………………………………… 178
9.8 树集的视图 ………………………………………………………………………… 182
9.9 树集与数据统计 …………………………………………………………………… 183
9.10 树集与过滤数据 …………………………………………………………………… 185
9.11 树集与节目单 ……………………………………………………………………… 187 习题 9 …………………………………………………………………………………… 188
第 10 章 散列表与 HashMap 类
10.1 散列结构的特点 …………………………………………………………………… 189
10.2 简单的散列函数 …………………………………………………………………… 191
10.3 HashMap 类 ……………………………………………………………………… 195
10.4 散列表的基本操作 ………………………………………………………………… 198
10.5 遍历散列表 ………………………………………………………………………… 200
10.6 统计字符、单词出现的次数和频率 ……………………………………………… 201
10.7 散列表与单件模式 ………………………………………………………………… 204
10.8 散列表与数据缓存 ………………………………………………………………… 206
10.9 TreeMap 类 ……………………………………………………………………… 207
10.10 Hashtable 类 …………………………………………………………………… 212
习题 10 …………………………………………………………………………………… 213
第 11 章 集合与 HashSet 类
11.1 集合的特点 ………………………………………………………………………… 214
11.2 HashSet 类 ………………………………………………………………………… 214
11.3 集合的基本操作 …………………………………………………………………… 216
11.4 集合与数据过滤 …………………………………………………………………… 218
11.5 正整数集合的生成集 ……………………………………………………………… 219
11.6 获得随机数的速度 ………………………………………………………………… 220 习题 11 …………………………………………………………………………………… 221
第 12 章 常用算法与 Collections 类
12.1 排序 ………………………………………………………………………………… 222
12.2 二分查找 …………………………………………………………………………… 224
12.3 反转与旋转 ………………………………………………………………………… 225
12.4 洗牌 ………………………………………………………………………………… 227
12.5 求*大值与*小值 ………………………………………………………………… 227
12.6 统计次数和频率 …………………………………………………………………… 228 习题 12 …………………………………………………………………………………… 230
第 13 章 图论
13.1 无向图 ……………………………………………………………………………… 231
13.2 有向图 ……………………………………………………………………………… 232
13.3 无向网络和有向网络 ……………………………………………………………… 233
13.4 图的存储 …………………………………………………………………………… 234
13.5 图的遍历 …………………………………………………………………………… 239
13.6 测试连通图 ………………………………………………………………………… 244
13.7 *短路径 …………………………………………………………………………… 247
13.8 *小生成树 ………………………………………………………………………… 251 习题 13 …………………………………………………………………………………… 254
第 14 章 经典算法思想
14.1 贪心算法 …………………………………………………………………………… 255
14.2 动态规划 …………………………………………………………………………… 258
14.3 回溯算法 …………………………………………………………………………… 261 习题 14 …………………………………………………………………………………… 265
附录 A 对象与接口的关键知识点 ………………………………… 266
参考文献 ………………………………………………………………………………… 273
展开全部
数据结构与算法 Java语言版 作者简介
耿祥义,1995年中国科学技术大学博士毕业,获理学博士学位。1997年从中山大学博士后流动站出站,现任大连交通大学教授。有多年教授Java语言的经验,已编写出版十余部教材。
张跃平,现任大连交通大学副教授。已编写和参编出版《Visual FoxPro课程设计》《Java 2实用教程》《JSP实用教程》《C语言程序设计教程》等多部教材。