《数据结构简明教程》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:李春葆主编
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:9787302336181
  • 页数:323 页
图书介绍:本书系统地介绍了各种常用的数据结构以及排序、查找的各种算法,阐述了各种数据结构的逻辑关系、存储表示及运算操作,并采用C语言描述数据组织和算法实现。

第1章 概论 1

1.1 数据结构概述 1

1.1.1 什么是数据结构 1

1.1.2 逻辑结构 2

1.1.3 存储结构 4

1.1.4 数据运算 7

1.1.5 数据结构、数据类型和抽象数据类型 7

1.2 算法和算法分析 11

1.2.1 算法及其描述 11

1.2.2 算法分析 14

1.3 数据结构程序设计 17

1.3.1 数据结构程序设计步骤 17

1.3.2 应用程序的结构 18

小结 20

练习题1 21

上机实验题1 23

第2章 线性表 24

2.1 线性表的基本概念 24

2.1.1 线性表的定义 24

2.1.2 线性表的基本运算 25

2.2 顺序表 26

2.2.1 顺序表的定义 26

2.2.2 线性表基本运算在顺序表上的实现 27

2.2.3 顺序表的插入和删除算法分析 30

2.2.4 顺序表的应用示例 31

2.3 单链表 33

2.3.1 单链表的定义 33

2.3.2 线性表基本运算在单链表上的实现 35

2.3.3 循环单链表 48

2.4 双链表 54

2.4.1 双链表的定义 54

2.4.2 线性表基本运算在双链表上的实现 55

2.4.3 循环双链表 62

2.5 线性表的应用 67

2.5.1 设计线性表应用程序的一般步骤 67

2.5.2 线性表应用示例 67

小结 71

练习题2 72

上机实验题2 74

第3章 栈和队列 75

3.1 栈 75

3.1.1 栈的基本概念 75

3.1.2 栈的顺序存储结构 76

3.1.3 栈的链式存储结构 80

3.1.4 栈的应用示例 83

3.2 队列 85

3.2.1 队列的基本概念 85

3.2.2 队列的顺序存储结构 87

3.2.3 队列的链式存储结构 92

3.2.4 队列的应用示例 97

小结 101

练习题3 101

上机实验题3 103

第4章 串 105

4.1 串的基本概念 105

4.1.1 串的定义 105

4.1.2 线性表的基本运算 106

4.2 串的顺序存储结构 106

4.2.1 顺序串的定义 106

4.2.2 串基本运算在顺序串上的实现 106

4.3 串的链式存储结构 112

4.3.1 链串的定义 112

4.3.2 串基本运算在链串上的实现 113

4.4 串的应用 120

小结 122

练习题4 122

上机实验题4 123

第5章 数组和稀疏矩阵 124

5.1 数组 124

5.1.1 数组的定义 124

5.1.2 数组的存储结构 125

5.1.3 数组的应用示例 126

5.2 特殊矩阵的压缩存储 126

5.3 稀疏矩阵 128

5.3.1 稀疏矩阵的三元组表示 128

5.3.2 稀疏矩阵的十字链表表示 133

小结 135

练习题5 135

上机实验题5 137

第6章 树和二叉树 138

6.1 树 138

6.1.1 树的定义 138

6.1.2 树的逻辑结构表示 139

6.1.3 树的基本术语 140

6.1.4 树的性质 140

6.1.5 树的基本运算 141

6.1.6 树的存储结构 142

6.2 叉树 143

6.2.1 二叉树的定义 143

6.2.2 二叉树的性质 144

6.2.3 二叉树的存储结构 146

6.3 递归算法设计方法 148

6.3.1 什么是递归 148

6.3.2 递归算法设计一般方法 150

6.3.3 二叉树的递归算法设计 152

6.4 二叉树的基本运算算法 153

6.4.1 二叉树的基本运算 153

6.4.2 二叉树基本运算实现算法 153

6.5 二叉树的遍历 156

6.5.1 常用的二叉树遍历算法 157

6.5.2 遍历算法的应用 161

6.6 二叉树的构造 167

6.6.1 什么是二叉树的构造 167

6.6.2 二叉树的构造方法 167

6.7 二叉树与树之间的转换 169

6.7.1 森林/树转换成二叉树 170

6.7.2 二叉树还原为树/森林 171

6.8 线索二叉树 172

6.8.1 什么是线索 172

6.8.2 线索二叉树的存储结构 173

6.8.3 建立线索二叉树及其销毁 174

6.8.4 线索二叉树的基本运算算法 175

6.9 哈夫曼树 178

6.9.1 哈夫曼树的定义 178

6.9.2 构造哈夫曼树 179

6.9.3 哈夫曼编码 180

小结 181

练习题6 182

上机实验题6 185

第7章 图 186

7.1 图的基本概念 186

7.1.1 图的定义 186

7.1.2 图的基本术语 187

7.1.3 图的基本操作 189

7.2 图的存储结构 190

7.2.1 邻接矩阵 190

7.2.2 邻接表 194

7.3 图的遍历 200

7.3.1 深度优先遍历算法 201

7.3.2 广度优先遍历算法 203

7.3.3 图遍历算法的应用 205

7.4 生成树和最小生成树 209

7.4.1 什么是图的生成树和最小生成树 209

7.4.2 普里姆算法 209

7.4.3 克鲁斯卡尔算法 212

7.5 最短路径 216

7.5.1 单源最短路径算法 216

7.5.2 多源最短路径算法 219

7.6 拓扑排序 227

7.7 AOE网与关键路径 228

小结 231

练习题7 232

上机实验题7 235

第8章 查找 236

8.1 查找的概念 236

8.2 静态查找表 237

8.2.1 顺序查找 237

8.2.2 折半查找 238

8.2.3 索引查找 241

8.3 动态查找表 244

8.3.1 二叉排序树 245

8.3.2 二叉平衡树 251

8.3.3 B-树 257

8.3.4 B+树 262

8.4 哈希表 264

8.4.1 哈希表的基本概念 264

8.4.2 哈希函数构造方法 264

8.4.3 哈希冲突解决方法 265

8.4.4 哈希表查找及性能分析 268

小结 271

练习题8 272

上机实验题8 275

第9章 排序 276

9.1 排序的基本概念 276

9.2 插入排序 277

9.2.1 直接插入排序 277

9.2.2 折半插入排序 279

9.2.3 希尔排序 281

9.3 交换排序 283

9.3.1 冒泡排序 283

9.3.2 快速排序 285

9.4 选择排序 288

9.4.1 简单选择排序 288

9.4.2 堆排序 290

9.5 归并排序 294

9.6 基数排序 297

9.7 外排序 300

9.7.1 磁盘排序过程 301

9.7.2 生成初始归并段 302

9.7.3 多路平衡归并 303

9.7.4 最佳归并树 307

小结 309

练习题9 309

上机实验题9 312

附录A 书中部分算法清单 313

附录B 全国计算机专业数据结构2013年联考大纲 316

附录C 部分练习题参考答案 319

参考文献 323