当前位置:首页 > 工业技术
数据结构 使用C语言  第3版
数据结构 使用C语言  第3版

数据结构 使用C语言 第3版PDF电子书下载

工业技术

  • 电子书积分:12 积分如何计算积分?
  • 作 者:朱战立编著
  • 出 版 社:西安:西安交通大学出版社
  • 出版年份:2004
  • ISBN:7560508839
  • 页数:330 页
图书介绍:
《数据结构 使用C语言 第3版》目录

目录 1

第3版前言 1

第2版前言 1

前言 1

第0章 C语言程序设计 1

0.1 程序的结构 1

0.2 函数 2

0.2.1 返回值 2

0.2.2 输入型参数 3

0.2.3 输出型参数 4

0.3 结构体 6

0.4 自定义语句 7

0.5 动态内存分配 8

0.6 一个程序例子 10

习题零 13

第1章 绪论 14

1.1 数据结构的基本概念 14

1.2 抽象数据类型和软件构造方法 17

1.3 算法和算法的时间复杂度 18

1.3.1 算法 18

1.3.2 算法设计目标 20

1.3.3 算法时间效率的度量 21

1.4 算法书写规范 25

习题一 25

2.1.1 线性表的定义 27

第2章 线性表 27

2.1 线性表抽象数据类型 27

2.1.2 线性表抽象数据类型 28

2.2 线性表的顺序表示和实现 29

2.2.1 顺序表的存储结构 29

2 2 2 顺序表操作的实现 30

2 2 3 顺序表操作的效率分析 33

2 2.4 顺序表应用举例 33

2.3 线性表的链式表示和实现 37

2.3.1 单链表的存储结构 37

2 3 2 单链表的操作实现 40

2.3.4 单链表应用举例 45

2.3 3 单链表操作的效率分析 45

2 3 5 循环单链表 47

2 3 6 双向链表 47

2 4 静态链表 51

2.5 算法设计举例 52

2 5 1 顺序表算法设计举例 52

2 5.2 单链表算法设计举例 53

习题二 55

第3章 堆栈和队列 58

3 1 堆栈 58

3.1.1 堆栈的基本概念 58

3 1.2 堆栈抽象数据类型 60

3 1 3 堆栈的顺序表示和实现 60

3 1.4 堆栈的链式表示和实现 63

3.2 堆栈应用 66

3.2.1 括号匹配问题 66

3.2.2 表达式计算问题 69

3.3 队列 72

3.3.1 队列的基本概念 72

3 3.2 队列抽象数据类型 73

3 3.3 顺序队列 73

3 3.4 顺序循环队列的表示和实现 74

3.3.5 链式队列 77

3 3.6 队列的应用 80

3 4.1 顺序优先级队列的设计和实现 82

3 4 优先级队列 82

3 4.2 优先级队列的应用 85

习题三 87

第4章 串 90

4.1 串 90

4 1.1 串及其基本概念 90

4 1 2 串的抽象数据类型 91

4 1 3 C语言的串函数 92

4.2 串的存储结构 94

4.2.1 串的顺序存储结构 94

4.2.2 串的链式存储结构 95

4.3 串基本操作的实现算法 96

4.4.1 Brute-Force算法 104

4.4 串的模式匹配算法 104

4 4.2 KMP算法 106

4 4.3 Brute-Force算法和KMP算法的比较 110

习题四 112

第5章 数组 114

5.1 数组 114

5.1.1 数组的定义 114

5.1.2 数组的实现机制 115

5.1.3 数组抽象数据类型 115

5 2 动态数组 116

5.2.1 动态数组的设计方法 116

5 2 2 动态数组和静态数组对比 119

5.3 特殊矩阵的压缩存储 120

5.4 稀疏矩阵的压缩存储 121

5 4.1 稀疏矩阵的三元组顺序表 122

5.4.2 稀疏矩阵的三元组链表 127

习题五 129

第6章 递归算法 132

6.1 递归的概念 132

6.2 递归算法的执行过程 133

6 3 递归算法的设计方法 136

6.4 递归过程和运行时栈 138

6.5 递归算法的效率分析 140

6.6 递归算法到非递归算法的转换 142

6 7 设计举例 145

6 7.1 一般递归算法设计举例 145

6 7.2 回溯法及设计举例 148

习题六 152

第7章 树和二叉树 155

7.1 树 155

7 1 1 树的定义 155

7 1.2 树的表示方法 156

7.1.3 树的抽象数据类型 157

7.1.4 树的存储结构 158

7.2 二叉树 160

7.2.1 二叉树的定义 160

7.2.2 二叉树抽象数据类型 161

7.2.3 二叉树的性质 162

7.3.1 二叉树的存储结构 164

7.3 二叉树的设计和实现 164

7.3.2 二叉链存储结构的二叉树操作实现 166

7.4 二叉树遍历 169

7.4.1 二叉树遍历 169

7 4 2 二叉链存储结构下二叉树遍历的实现 171

7 4 3 二叉树遍历的应用 172

7.4.4 非递归的二叉树遍历算法 175

7.5 线索二叉树 177

7 5.1 线索二叉树的概念 177

7.5.2 中序线索二叉树的设计 179

7 5.3 中序线索二叉树循环操作的设计 181

7.5.4 设计举例 182

7.6.1 哈夫曼树的基本概念 184

7.6 哈夫曼树 184

7.6.2 哈夫曼编码问题 185

7.6.3 哈夫曼编码问题设计和实现 186

7.7 树与二叉树的转换 192

7.7.1 树转换为二叉树 193

7.7.2 二叉树还原为树 193

7.8 树的遍历 194

习题七 195

第8章 图 197

8.1 图 197

8.1.1 图的基本概念 197

8.1.2 图的抽象数据类型 199

8.2.1 图的邻接矩阵存储结构 200

8.2 图的存储结构 200

8.2.2 图的邻接表存储结构 202

8.3 图的实现 202

8 3.1 邻接矩阵存储结构下图操作的实现 202

8.3.2 邻接表存储结构下图操作的实现 207

8.4 图的遍历 212

8 4.1 图的深度和广度优先遍历算法 212

8.4.2 图的深度和广度优先遍历算法实现 214

8.5 最小生成树 217

8.5.1 最小生成树的基本概念 217

8 5 2 普里姆算法 218

8.5.3 克鲁斯卡尔算法 223

8.6 1 最短路径的基本概念 224

8.6 最短路径 224

8.6.2 从一个结点到其余各结点的最短路径 225

8.6.3 每对结点之间的最短路径 229

习题八 232

第9章 排序 234

9.1 排序的基本概念 234

9.2 插入排序 236

9.2.1 直接插入排序 236

9.2.2 希尔排序 239

9.3 选择排序 241

9.3.1 直接选择排序 241

9.3.2 堆排序 242

9.4.1 冒泡排序 247

9.4 交换排序 247

9.4.2 快速排序 249

9.5 归并排序 251

9.6 基数排序 254

9.7 性能比较 257

习题九 258

第10章 查找 260

10.1 查找的基本概念 260

10 2 静态查找表 261

10.2.1 顺序表 261

10.2.2 有序顺序表 262

10.2 3 索引顺序表 264

10.3.1 二叉排序树 267

10.3 动态查找表 267

10.3.2 B树 274

10.4 哈希表 278

10.4.1 哈希表的基本概念 278

10 4.2 哈希函数构造方法 280

10.4.3 哈希冲突解决方法 281

10.4.4 哈希表设计举例 283

习题十 287

第11章 文件 288

11.1 文件概述 288

11.1 1 文件的演变过程及基本概念 288

11.1 2 文件的存储介质 289

11.1 3 文件的基本操作 291

11.2 顺序文件 292

11 3 索引文件 293

11 4 ISAM文件 294

11 5 VSAM文件 296

11 6 散列文件 298

习题十一 300

附录1 上机实习内容规范和实习报告范例 301

附录1.1 上机实习内容规范 301

附录1.2 上机实习报告范例——回文问题 302

附录1.3 上机实习报告范例——约瑟夫环问题 308

附录2 部分习题解答 314

参考文献 330

相关图书
作者其它书籍
返回顶部