《数据结构与程序设计》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:王裕明,李旭芳主编
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2010
  • ISBN:9787302234784
  • 页数:289 页
图书介绍:本书比较系统地介绍了线性表、栈和队列、串、数组和广义表、树、图、查找、排序等内容。

第1章 绪论 1

1.1 数据结构概述 1

1.2 算法及其复杂度 3

1.2.1 什么是算法 3

1.2.2 有关算法复杂度的概念 4

1.2.3 算法复杂度分析 4

本章小结 8

习题一 8

第2章 线性表 10

2.1 线性表的概念 10

2.2 顺序存储的线性表 11

2.2.1 顺序线性表的基本操作 11

2.2.2 顺序线性表应用举例 15

2.3 线性链表 17

2.3.1 向前链表 18

2.3.2 循环链表 25

2.3.3 双向循环链表 28

2.4 线性表应用举例 31

本章小结 42

习题二 42

第3章 栈和队列 46

3.1 栈 46

3.1.1 栈的定义和特性 46

3.1.2 栈的顺序存储方式 46

3.1.3 栈的链接存储方式 49

3.2 栈的应用举例 51

3.3 队列 56

3.3.1 队列的定义和特性 56

3.3.2 队列的顺序存储方式 56

3.3.3 队列的链接存储方式 61

3.4 队列应用举例 63

本章小结 68

习题三 68

第4章 串 72

4.1 串的基本概念和术语 72

4.1.1 串的定义 72

4.1.2 串的有关术语 72

4.2 串的存储结构 73

4.2.1 顺序存储结构 73

4.2.2 链式存储结构 74

4.3 串的基本操作 75

4.3.1 串的基本操作 75

4.3.2 顺序串的操作举例 76

4.4 串的模式匹配算法 78

4.4.1 简单的模式匹配算法 78

4.4.2 改进后的模式匹配算法 82

4.5 串操作应用实例 86

4.5.1 堆存储结构 86

4.5.2 文本编辑 86

本章小结 90

习题四 91

第5章 数组和广义表 92

5.1 数组的定义 92

5.2 数组的存储结构 93

5.3 特殊矩阵的压缩存储 96

5.3.1 对称矩阵 96

5.3.2 三角矩阵 97

5.3.3 带状矩阵 98

5.4 稀疏矩阵 99

5.4.1 稀疏矩阵的三元组表存储 99

5.4.2 稀疏矩阵的十字链表存储 105

5.5 数组应用实例 111

5.6 广义表 117

5.6.1 广义表的基本概念和性质 117

5.6.2 广义表的存储 118

5.6.3 广义表的基本操作 119

本章小结 121

习题五 121

第6章 树 123

6.1 树的基本概念和术语 123

6.1.1 树的定义 123

6.1.2 树的有关术语 124

6.2 二叉树 125

6.2.1 二叉树的定义 125

6.2.2 二叉树的性质 126

6.2.3 二叉树的存储结构 127

6.2.4 二叉树的建立 128

6.3 遍历二叉树 131

6.3.1 遍历二叉树的顺序 131

6.3.2 遍历顺序与二叉树的结构 131

6.3.3 遍历二叉树的递归算法 132

6.3.4 遍历二叉树的非递归算法 134

6.3.5 按层次遍历二叉树 138

6.3.6 遍历二叉树的应用 141

6.4 线索二叉树 144

6.4.1 线索二叉树的建立 145

6.4.2 单步遍历线索二叉树 148

6.5 哈夫曼树及应用 155

6.5.1 哈夫曼树的定义 155

6.5.2 哈夫曼树的构造算法 155

6.5.3 哈夫曼树的应用 158

6.6 树和森林 161

6.6.1 树的存储结构 161

6.6.2 森林与二叉树的转换 164

本章小结 165

习题六 165

第7章 图 169

7.1 图的基本概念和术语 169

7.1.1 图的定义 169

7.1.2 图的基本概念和术语 170

7.1.3 带权图 171

7.2 图的存储结构 171

7.2.1 邻接矩阵 171

7.2.2 邻接表 172

7.3 图的遍历 172

7.3.1 深度优先搜索 172

7.3.2 广度优先搜索 173

7.3.3 图的遍历程序 174

7.4 图的生成树 182

7.4.1 图的生成树和最小生成树 182

7.4.2 Prim算法 183

7.4.3 Kruskal算法 186

7.5 最短路径问题 189

7.5.1 单源点最短路径问题 189

7.5.2 每对顶点间的最短路径问题 192

7.6 拓扑排序 195

本章小结 199

习题七 199

第8章 查找 204

8.1 基本概念 204

8.2 顺序表的查找 205

8.2.1 顺序查找 205

8.2.2 折半查找 207

8.2.3 分块查找 210

8.3 二叉排序树 211

8.3.1 二叉排序树的定义 211

8.3.2 二叉排序树的基本操作 212

8.4 哈希表 220

8.4.1 哈希表的概念 220

8.4.2 哈希函数的构造方法 221

8.4.3 解决冲突的方法 223

8.4.4 哈希表程序举例 225

本章小结 227

习题八 227

第9章 排序 229

9.1 排序的基本概念 229

9.2 插入排序 230

9.2.1 直接插入排序 230

9.2.2 折半插入排序 234

9.2.3 希尔排序 236

9.3 交换排序 240

9.3.1 冒泡排序 240

9.3.2 快速排序 242

9.4 选择排序 247

9.4.1 简单选择排序 247

9.4.2 树形选择排序 250

9.4.3 堆排序 251

9.5 归并排序 256

9.6 基数排序 259

9.6.1 多关键字的排序 259

9.6.2 链式基数排序 260

9.7 各种排序方法的综合比较 266

9.8 外部排序 268

9.8.1 外存信息的存储介质 268

9.8.2 多路平衡归并 269

9.8.3 平衡归并排序 276

本章小结 278

习题九 278

实验题 280

实验一 线性表 280

实验二 栈、队列的算法设计 282

实验三 串及其应用 284

实验四 树及其应用 285

实验五 图及其应用 286

实验六 查找和排序 287

参考文献 289