《图解数据结构 使用Java》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:胡昭民编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2015
  • ISBN:9787302402992
  • 页数:363 页
图书介绍:这是一本以Java程序语言实作来解说数据结构概念的入门书,内容浅显易懂,利用大量且丰富的图标与范例,仔细解说复杂的抽象理论,先从最基本的数据结构概念开始说明,再以Java工具加以诠释数组结构、堆栈、链接串行、队列、排序、搜索等重要的观念,引领读者集中焦点进入数据结构的学习领域。

第1章 数据结构导论 1

1.1 数据结构简介 2

1.1.1 数据与信息 2

1.1.2 算法 3

1.1.3 算法的条件 3

1.2 认识程序设计 5

1.2.1 程序开发流程 5

1.2.2 数据类型简介 6

1.2.3 结构化程序设计 6

1.2.4 面向对象程序设计 7

1.3 算法效能分析 9

1.3.1 时间复杂度 9

1.3.2 Big-oh 10

1.3.3 Ω(omega) 11

1.3.4 θ(theta) 12

1.4 面向对象程序设计与Java 12

1.4.1 类与对象 12

1.4.2 面向对象特性 14

1.4.3 数据封装 14

1.4.4 类继承 15

1.4.5 对象多态 17

1.4.6 抽象类 19

1.4.7 接口 20

本章重点整理 22

本章习题 23

第2章 数组结构 29

2.1 线性表 30

2.1.1 线性表定义 30

2.1.2 线性表在计算机中的应用 30

2.2 认识数组 31

2.2.1 一维数组 32

2.2.2 二维数组 33

2.2.3 三维数组 35

2.2.4 n维数组 37

2.2.5 Arrays类实现 38

2.3 矩阵的简介与运算 40

2.3.1 矩阵相加 40

2.3.2 矩阵相乘 42

2.3.3 转置矩阵 45

2.3.4 稀疏矩阵 46

2.3.5 上三角形矩阵 50

2.3.6 下三角形矩阵 55

2.4 数组与多项式 60

2.4.1 认识多项式 60

2.4.2 多项式的加法 60

本章重点整理 61

本章习题 63

第3章 链表 67

3.1 单向链表 68

3.1.1 建立单向链表 70

3.1.2 单向链表节点的删除 74

3.1.3 单向链表的节点插入 78

3.1.4 单向链表的反转 80

3.1.5 单向链表的串联 84

3.1.6 多项式的列表表示法 85

3.2 环形链表 89

3.2.1 环形链表的定义 89

3.2.2 环形链表的节点插入 90

3.2.3 环形链表的节点删除 90

3.2.4 环形链表的串联 93

3.2.5 环形链表表示稀疏矩阵 97

3.3 双向链表 98

3.3.1 双向链表的定义 98

3.3.2 双向链表的节点插入 98

3.3.3 双向链表节点删除 99

本章重点整理 103

本章习题 103

第4章 堆栈 110

4.1 认识堆栈 111

4.1.1 堆栈的运算 111

4.1.2 堆栈的数组实现 111

4.1.3 堆栈的表实现 115

4.2 堆栈的应用 118

4.2.1 汉诺塔问题 118

4.2.2 迷宫问题 124

4.2.3 八皇后问题 129

4.3 算术表达式的求值法 132

4.3.1 中序表示法求值 133

4.3.2 前序表示法求值 134

4.3.3 后序表示法求值 135

4.4 中序法转换为前序法 136

4.4.1 二叉树法 136

4.4.2 括号法 136

4.4.3 堆栈法 137

4.5 前序与后序式转换成中序式 143

4.5.1 括号法 143

4.5.2 堆栈法 144

本章重点整理 146

本章习题 147

第5章 队列 155

5.1 认识队列 156

5.1.1 队列的工作运算 156

5.1.2 队列的数组实现 156

5.1.3 以链表实现队列 159

5.2 队列的应用 161

5.2.1 环形队列 162

5.2.2 优先队列 165

5.2.3 双向队列 166

本章重点整理 169

本章习题 169

第6章 树状结构 172

6.1 树 173

6.2 二叉树简介 174

6.2.1 二叉树的定义 175

6.2.2 特殊二叉树简介 176

6.3 二叉树存储方式 177

6.3.1 数组表示法 177

6.3.2 列表表示法 179

6.4 二叉树的遍历 181

6.4.1 中序遍历 182

6.4.2 前序遍历 182

6.4.3 后序遍历 183

6.4.4 二叉树的遍历实现 183

6.4.5 二叉运算树 187

6.5 二叉树的高级研究 192

6.5.1 二叉排序树 192

6.5.2 二叉搜索树 197

6.5.3 线索二叉树 200

6.6 树的二叉树表示法 205

6.6.1 树转换为二叉树 205

6.6.2 树林转换为二叉树 209

6.6.3 树与树林的遍历 211

6.6.4 确定唯一二叉树 214

本章重点整理 216

本章习题 217

第7章 图形结构 224

7.1 图论的起源 225

7.2 图形介绍 226

7.3 图形表示法 228

7.3.1 相邻矩阵法 228

7.3.2 相邻表法 232

7.3.3 相邻多元列表法 236

7.3.4 索引表格法 237

7.4 图形的遍历 239

7.4.1 先深后广法 240

7.4.2 先广后深法 243

7.5 生成树 246

7.6 MST生成树 248

7.6.1 Prim算法 249

7.6.2 Kruskal算法 250

7.7 图形最短路径 255

7.7.1 单点对全部顶点 256

7.7.2 顶点两两之间的最短距离 259

7.8 AOV网络与拓扑排序 263

7.8.1 AOV网络简介 264

7.8.2 拓扑排序实现 264

7.8.3 AOE网络 266

本章重点整理 268

本章习题 269

第8章 排序 277

8.1 排序简介 278

8.1.1 排序的分类 279

8.1.2 排序算法分析 279

8.2 内部排序法 280

8.2.1 冒泡排序法 280

8.2.2 选择排序法 285

8.2.3 插入排序法 288

8.2.4 希尔排序法 290

8.2.5 合并排序法 292

8.2.6 快速排序法 293

8.2.7 堆积排序法 297

8.2.8 基数排序法 304

8.3 外部排序法 307

本章重点整理 316

本章习题 317

第9章 查找 323

9.1 查找简介 324

9.2 常见查找方法 324

9.2.1 顺序查找法 324

9.2.2 二分查找法 326

9.2.3 插值查找法 328

9.2.4 斐波那契查找法 331

9.3 哈希查找法 333

9.3.1 哈希法简介 333

9.3.2 常见的哈希函数 334

9.3.3 碰撞问题 338

9.3.4 哈希法综合范例 342

本章重点整理 345

本章习题 346

附录 Java的开发环境简介 353