《数据结构 使用C语言》求取 ⇩

目录1

第1章 绪论1

1.1 数据结构的基本概念1

1.2 数据类型和抽象数据类型2

1.3 C语言的数据类型3

1.4 用C语言描述算法的注意事项9

1.5 算法设计目标和算法效率度量10

习题一11

2.1 线性表的逻辑结构及其基本操作13

第2章 线性表13

2.2 线性表的顺序存储结构——顺序表14

2.2.1 顺序表14

2.2.2 顺序表上的基本操作15

2.2.3 顺序存储结构的特点17

2.3 线性表的链式存储结构——链表18

2.3.1 单链表18

2.3.2 单链表上的基本操作19

2.3.3 双向链表23

2.3.4 循环链表27

2.3.5 链式存储结构的特点28

2.4 静态链表29

2.5 应用实例32

2.5.1 数据传递问题33

2.5.2 线性表合并问题34

2.5.3 约瑟夫问题38

习题二40

第3章 堆栈与队列41

3.1 堆栈41

3.1.1 堆栈的定义及其操作41

3.1.2 堆栈的顺序存储结构42

3.1.3 堆栈的链式存储结构45

3.2 堆栈应用——表达式计算46

3.3 队列51

3.3.1 队列的定义及其操作51

3.3.2 队列的顺序存储结构51

3.3.3 队列的链式存储结构55

3.4 队列应用举例57

3.4.1 事件规划问题57

3.4.2 键盘输入循环缓冲区问题60

习题三62

4.1.1 串的概念63

第4章 串63

4.1 串及其基本操作63

4.1.2 串的基本操作64

4.2 串的存储结构65

4.2.1 串的静态存储结构65

4.2.2 串的动态存储结构66

4.3 串基本操作的实现68

4.4 串的模式匹配算法72

4.4.1 Brute-Force算法72

4.4.2 KMP算法74

4.5 串应用——文本编辑软件77

习题四82

第5章 数组84

5.1 数组的定义及其基本操作84

5.1.1 数组的定义84

5.1.2 数组的基本操作85

5.2 数组的存储结构85

5.3 特殊矩阵的压缩存储87

5.3.1 对称矩阵的压缩存储88

5.3.3 稀疏矩阵的三元组顺序表89

5.3.2 对角矩阵的压缩存储89

5.3.4 稀疏矩阵的三元组十字链表91

习题五95

第6章 递归97

6.1 递归的概念97

6.2 用C语言实现递归100

6.3 递归算法的设计103

6.4 递归模拟106

6.4.1 递归的实现机制106

6.4.2 用非递归算法模拟递归算法107

习题六113

第7章 树和二叉树114

7.1 树114

7.1.1 树的定义114

7.1.2 树的表示方法115

7.1.3 树的基本术语116

7.1.4 树的基本操作117

7.1.5 树的存储结构117

7.2 二叉树120

7.2.1 二叉树的基本概念120

7.2.2 二叉树的性质121

7.2.3 二叉树的存储结构123

7.2.4 二叉树的基本操作及其实现126

7.3 二叉树的遍历和线索二叉树128

7.3.1 二叉树的遍历128

7.3.2 线索二叉树135

7.4 二叉树的应用——哈夫曼树142

7.4.1 哈夫曼树的基本概念142

7.4.2 哈夫曼树在编码问题中的应用144

7.4.3 哈夫曼树在判定问题中的应用148

7.5.1 树转换为二叉树149

7.5 树、森林与二叉树的转换149

7.5.2 森林转换为二叉树151

7.5.3 二叉树还原为树或森林151

7.6 树和森林的遍历152

7.6.1 树的遍历152

7.6.2 森林的遍历153

7.7 树的应用153

7.7.1 判定树153

7.7.2 集合的表示155

习题七156

8.1 图的基本概念159

第8章 图159

8.2 图的存储结构162

8.2.1 邻接矩阵163

8.2.2 邻接表165

8.2.3 十字链表169

8.2.4 邻接多重表170

8.3 图的遍历171

8.3.1 深度优先搜索的遍历方法172

8.3.2 广度优先搜索的遍历方法174

8.4.1 最小生成树的基本概念175

8.4 最小生成树175

8.4.2 prim算法构造最小生成树176

8.4.3 Kruskal算法构造最小生成树179

8.5 最短路径问题181

8.5.1 单源最短路径181

8.5.2 每对顶点之间的最短路径184

8.6 关键路径问题186

习题八189

第9章 排序192

9.1 排序的基本概念192

9.2.1 直接插入排序194

9.2 插入排序194

9.2.2 希尔排序195

9.3 选择排序197

9.3.1 直接选择排序198

9.3.2 堆排序199

9.4 交换排序204

9.4.1 冒泡排序204

9.4.2 快速排序205

9.5 归并排序208

9.6 基数排序211

习题九216

第10章 查找218

10.1 查找的基本概念218

10.2 顺序表的查找219

10.2.1 顺序查找219

10.2.2 二分查找221

10.2.3 分块查找226

10.3 树表的查找228

10.3.1 二叉排序树查找229

10.3.2 B_树查找235

10.4.1 哈希表查找的基本概念240

10.4 哈希表查找240

10.4.2 构造哈希函数的方法241

10.4.3 哈希冲突的解决方法243

10.4.4 哈希表的查找245

习题十246

第11章 文件248

11.1 文件概述248

11.1.1 文件的演变过程及基本概念248

11.1.2 文件的存储介质249

11.1.3 文件的基本操作250

11.2 顺序文件251

11.3 索引文件252

11.4 ISAM文件253

11.5 VSAM文件256

11.6 散列文件258

习题十一259

附录Ⅰ C语言关键字及其用途260

附录Ⅱ C语言运算符的优先级别和结合方向261

附录Ⅲ C语言基本库函数262

参考文献270

1997《数据结构 使用C语言》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件(由朱战立,李文编著 1997 西安:西安交通大学出版社 出版的版本) 。对合法合规的求助,我会当即受理并将下载地址发送给你。