《数据结构 Java版》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:吕云翔,郭颖美编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2017
  • ISBN:9787302476757
  • 页数:221 页
图书介绍:本书采用Java语言作为描述算法的语言,共9章,可分成两大部分。第一部分主要介绍线性表、栈、队列、串、数组、树和图等基本数据结构的特点、存储方式、运算原理、实现方法以及它们在现实中的典型应用; 第二部分主要讨论查找与排序这两种最常用操作的实现原理、方法及性能分析。

第1章 绪论 1

1.1 引言 1

1.1.1 学习目的 1

1.1.2 课程内容 1

1.2 基本概念 2

1.2.1 数据与数据结构 2

1.2.2 数据类型与抽象数据类型 5

1.3 算法 8

1.3.1 算法的概念 8

1.3.2 算法描述 9

1.3.3 算法分析 10

1.4 Java提供的泛型方法 12

1.4.1 使用Object类表示泛型 12

1.4.2 使用Comparable接口类型表示泛型 13

小结 14

习题1 14

第2章 线性表 17

2.1 线性表及其基本操作 17

2.1.1 线性表的基本概念 17

2.1.2 抽象数据类型描述 18

2.1.3 线性表的存储和实现 18

2.2 线性表的顺序存储 18

2.2.1 顺序表 18

2.2.2 顺序表的基本操作实现 20

2.3 线性表的链式存储和实现 24

2.3.1 单链表 25

2.3.2 单链表的基本操作实现 27

2.3.3 其他链表 31

2.4 顺序表与链表的比较 32

小结 32

习题2 33

第3章 栈和队列 35

3.1 栈 35

3.1.1 栈的基本概念 35

3.1.2 栈的抽象数据类型描述 35

3.1.3 顺序栈 35

3.1.4 链栈 38

3.2 队列 42

3.2.1 队列的基本概念 42

3.2.2 队列的抽象数据类型描述 42

3.2.3 顺序队列 43

3.2.4 链队列 47

3.2.5 优先级队列 49

3.3 栈和队列的比较 52

小结 52

习题3 53

第4章 串和数组 56

4.1 串 56

4.1.1 串的基本概念 56

4.1.2 串的抽象数据类型描述 56

4.1.3 顺序串 57

4.1.4 链串 61

4.2 串的模式匹配 61

4.2.1 Brute-Force算法 61

4.2.2 KMP算法 62

4.3 数组 66

4.3.1 数组的基本概念 66

4.3.2 数组的特性 67

4.3.3 数组的遍历 67

4.4 特殊矩阵的压缩存储 68

4.4.1 三角矩阵的压缩存储 68

4.4.2 对称矩阵的压缩存储 69

4.4.3 对角矩阵的压缩存储 69

4.4.4 稀疏矩阵的压缩存储 69

小结 72

习题4 73

第5章 树形结构 75

5.1 树 75

5.1.1 树的基本概念 75

5.1.2 树的术语 76

5.2 二叉树 77

5.2.1 二叉树的基本概念 77

5.2.2 二叉树的性质 77

5.2.3 二叉树的存储结构 78

5.2.4 二叉树的遍历 80

5.2.5 二叉树遍历算法的应用 84

5.2.6 二叉树的建立 86

5.3 哈夫曼树及哈夫曼编码 88

5.3.1 哈夫曼树的基本概念 88

5.3.2 哈夫曼树的构造 89

5.3.3 哈夫曼编码 90

5.3.4 构造哈夫曼树和哈夫曼编码的类的描述 90

5.4 树和森林 92

5.4.1 树的存储结构 92

5.4.2 树的遍历规则 93

小结 93

习题5 93

第6章 图 96

6.1 图概述 96

6.1.1 图的基本概念 96

6.1.2 图的抽象数据类型描述 98

6.2 图的存储结构 98

6.2.1 邻接矩阵 98

6.2.2 邻接表 102

6.3 图的遍历 107

6.4 最小生成树 112

6.4.1 最小生成树的基本概念 112

6.4.2 Kruskal算法 112

6.4.3 Prim算法 113

6.5 最短路径 115

6.5.1 求某个顶点到其余顶点的最短路径 115

6.5.2 求任意两个顶点间的最短路径 116

6.6 拓扑排序和关键路径 117

6.6.1 拓扑排序 118

6.6.2 关键路径 119

小结 121

习题6 121

第7章 排序 124

7.1 排序概述 124

7.1.1 排序的基本概念 124

7.1.2 排序算法的性能评价 124

7.1.3 待排序的记录和顺序表的类描述 124

7.2 插入排序 125

7.2.1 直接插入排序 125

7.2.2 希尔排序 127

7.3 交换排序 128

7.3.1 冒泡排序 128

7.3.2 快速排序 129

7.4 选择排序 132

7.4.1 直接选择排序 132

7.4.2 堆排序 134

7.5 归并排序 136

小结 140

习题7 140

第8章 查找 143

8.1 查找的基本概念 143

8.1.1 什么是查找 143

8.1.2 查找表 143

8.1.3 平均查找长度 143

8.2 静态表查找 144

8.2.1 顺序查找 144

8.2.2 二分查找 144

8.2.3 分块查找 145

8.3 动态表查找 146

8.3.1 二叉排序树查找 146

8.3.2 平衡二叉树 150

8.3.3 B-树和B+树 153

8.4 哈希表查找 153

8.4.1 哈希表的概念 153

8.4.2 哈希函数 154

8.4.3 解决冲突的方法 155

8.4.4 哈希表查找性能分析 156

小结 158

习题8 159

附录A 数据结构试卷 161

数据结构试卷(一) 161

数据结构试卷(二) 164

数据结构试卷(三) 166

数据结构试卷(四) 168

数据结构试卷(五) 170

附录B 实践题 173

参考文献 219