当前位置:首页 > 工业技术
数据结构 C语言描述
数据结构 C语言描述

数据结构 C语言描述PDF电子书下载

工业技术

  • 电子书积分:11 积分如何计算积分?
  • 作 者:孙克雷主编
  • 出 版 社:武汉:武汉大学出版社
  • 出版年份:2007
  • ISBN:730705566X
  • 页数:275 页
图书介绍:本书介绍了计算机数据结构的基本概念、原理及应用等知识。
《数据结构 C语言描述》目录

第1章 绪论 1

1.1 概述 1

1.2 数据结构的基本概念 4

1.2.1 数据结构的基本术语 4

1.2.2 数据的逻辑结构 4

1.2.3 数据的存储结构 5

1.3 数据类型和抽象数据类型 7

1.3.1 数据类型 7

1.3.2 抽象数据类型 7

1.4 算法 9

1.4.1 算法的定义 9

1.4.2 算法描述 9

1.4.3 算法与数据结构的关系 12

1.4.4 算法设计的要求 12

1.4.5 算法的时间复杂度 13

1.4.6 算法的空间复杂度 15

1.5 实例解析 15

本章小结 17

习题1 18

第2章 线性表 21

2.1 线性表的基本概念 21

2.1.1 线性表的定义和特性 21

2.1.2 线性表的抽象数据类型 22

2.2 线性表的顺序存储结构及其操作 23

2.2.1 顺序表的定义和特点 23

2.2.2 顺序表的基本操作 24

2.2.3 顺序表的时间复杂度 27

2.3 线性表的链式存储结构及其运算 28

2.3.1 单链表 28

2.3.2 单链表的基本操作 30

2.3.3 循环链表 35

2.3.4 双向链表 37

2.4 各种存储结构线性表的比较 40

2.5 实例解析 41

本章小结 44

习题2 44

第3章 栈和队列 46

3.1 栈的基本概念 46

3.1.1 栈的定义和特性 46

3.1.2 栈的抽象数据类型 47

3.2 栈的顺序存储结构及其运算 48

3.2.1 栈的顺序存储结构 48

3.2.2 顺序栈的基本操作 49

3.2.3 共享栈 52

3.2.4 顺序栈的应用 52

3.3 栈的链式存储结构及其运算 53

3.3.1 栈的链式存储结构 54

3.3.2 链栈的基本运算 54

3.3.3 链栈的应用 56

3.4 队列的基本概念 57

3.4.1 队列的定义及特性 57

3.4.2 队列的抽象数据类型 58

3.5 队列的顺序存储结构及其运算 59

3.5.1 队列的顺序存储结构 59

3.5.2 顺序存储的循环队列 60

3.5.3 循环队列的基本运算 61

3.5.4 队列的应用 63

3.6 队列的链式存储结构及其运算 64

3.6.1 队列的链式存储结构 64

3.6.2 链队列的基本运算 65

3.7 递归 67

3.7.1 递归的概念 67

3.7.2 递归程序的编写 68

3.8 实例解析 69

本章小结 73

习题3 73

第4章 串 75

4.1 串的基本概念 75

4.1.1 串的定义和特性 75

4.1.2 串的抽象数据类型 76

4.2 串的存储结构及其运算 78

4.2.1 串的静态顺序存储及实现 78

4.2.2 串的动态顺序存储及实现 80

4.2.3 串的链式存储及其实现 83

4.3 串的模式匹配 84

4.3.1 朴素的模式匹配算法 84

4.3.2 KMP模式匹配算法 85

4.4 实例解析 88

本章小结 90

习题4 91

第5章 数组与广义表 92

5.1 数组的基本概念 92

5.1.1 数组的定义和特性 92

5.1.2 数组的抽象数据类型 93

5.2 数组的顺序表示和实现 93

5.3 特殊矩阵的压缩存储 96

5.3.1 对称矩阵 96

5.3.2 三角矩阵 97

5.3.3 对角矩阵 98

5.4 稀疏矩阵的压缩存储 98

5.4.1 三元组表 99

5.4.2 十字链表 102

5.5 广义表 104

5.5.1 广义表的定义 104

5.5.2 广义表的存储结构 106

5.5.3 广义表的基本运算 107

5.6 实例解析 108

本章小结 110

习题5 110

第6章 树和二叉树 112

6.1 树的基本概念 112

6.1.1 树的定义 112

6.1.2 树的表示 114

6.1.3 树的基本术语 115

6.2 树的存储结构 115

6.2.1 双亲表示法 116

6.2.2 孩子表示法 117

6.2.3 双亲孩子表示法 118

6.2.4 孩子兄弟表示法 118

6.3 二叉树 119

6.3.1 二叉树的基本概念 119

6.3.2 二叉树的性质 121

6.3.3 二叉树的存储结构 123

6.4 二叉树的遍历和线索 125

6.4.1 二叉树的遍历 125

6.4.2 线索二叉树 132

6.5 二叉树、树和森林 136

6.5.1 树转换为二叉树 136

6.5.2 森林转换为二叉树 137

6.5.3 二叉树转换为树和森林 138

6.5.4 树和森林的遍历 138

6.6 哈夫曼树 139

6.6.1 哈夫曼树的基本概念 140

6.6.2 哈夫曼树的构造算法 141

6.6.3 哈夫曼编码 142

6.7 实例解析 144

本章小结 147

习题6 147

第7章 图 149

7.1 图的基本概念 149

7.1.1 图的定义 149

7.1.2 图的术语 150

7.2 图的存储结构 153

7.2.1 邻接矩阵 154

7.2.2 邻接表 156

7.2.3 十字链表 159

7.2.4 邻接多重表 160

7.3 图的遍历 161

7.3.1 深度优先遍历 161

7.3.2 广度优先遍历 164

7.4 最小生成树 165

7.4.1 最小生成树的概念 165

7.4.2 Prim算法 167

7.4.3 Kruskal算法 169

7.5 最短路径 171

7.5.1 最短路径的基本概念 171

7.5.2 单源最短路径 171

7.5.3 所有顶点对之间的最短路径 174

7.6 有向无环图及其应用 177

7.6.1 有向无环图 177

7.6.2 拓扑排序 178

7.6.3 关键路径 181

7.7 实例解析 187

本章小结 192

习题7 193

第8章 查找 196

8.1 查找的基本概念 196

8.2 顺序表查找 197

8.2.1 顺序查找 198

8.2.2 折半查找 199

8.2.3 分块查找 202

8.3 树表查找 203

8.3.1 二叉排序树 203

8.3.2 平衡二叉树 209

8.3.3 B-树查找 214

8.4 哈希表查找 218

8.4.1 哈希表与哈希函数 218

8.4.2 构造哈希函数的常用方法 220

8.4.3 解决冲突的主要方法 222

8.5 实例解析 225

本章小结 228

习题8 229

第9章 排序 231

9.1 排序的基本概念 231

9.2 插入排序 233

9.2.1 直接插入排序 233

9.2.2 折半插入排序 235

9.2.3 希尔排序 237

9.3 选择排序 238

9.3.1 直接选择排序 239

9.3.2 堆排序 240

9.4 交换排序 244

9.4.1 冒泡排序 245

9.4.2 快速排序 246

9.5 各种排序算法的比较 248

本章小结 249

习题9 249

第10章 实训 251

实训1 哈夫曼编码/译码器 251

实训2 内部排序 261

实训3 校园导游咨询系统 267

返回顶部