《数据结构-C语言版》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:资讯教育小组编著
  • 出 版 社:北京:中国铁道出版社
  • 出版年份:2002
  • ISBN:711304722X
  • 页数:468 页
图书介绍:本书内容包括:C语言与数据结构、数组与字符串、基本链表、复杂链表、递归函数、OOP与数据结构等。

第1章 C语言与数据结构 1

1.1 数据结构的基础 2

1.2 数据结构的抽象表示 4

1.2.1 抽象化 5

1.2.2 C语言的数据类型 5

1.2.3 数据结构抽象化 11

1.3 数据结构和算法 15

1.4 结构化的程序规划 16

1.4.1 结构化的重要性 16

1.4.3 自顶向下的设计方法 17

1.4.2 模块化 17

1.5 设计风格 18

1.5.1 使用有意义的变量和函数名称 18

1.5.2 程序注释 18

1.5.3 使用局部变量 19

1.5.4 函数间的参数传递 21

1.5.5 函数的模块化 22

1.6 习题 22

第2章 数组与字符串 25

2.1 内存静态分配 26

2.2 一维数组 26

2.3 一维数组的访问 30

2.4 一维数组的遍历 32

2.5 二维数组 36

2.6 数组的表示法 39

2.6.1 以行为主或以列为主的表示方法 39

2.6.2 指针数组的表示法 42

2.7 稀疏矩阵 45

2.8 字符串的存储方式 47

2.9 字符串的基本处理 52

2.9.1 字符串的拷贝 54

2.9.2 字符串的连接 55

2.9.3 字符串的替换 56

2.9.4 字符串的插入 58

2.9.5 字符串的删除 60

2.9.6 字符串的比较 62

2.9.7 提取子字符串 63

2.10 字符串的高级处理 65

2.10.1 字符串的对比 65

2.10.2 字符串的分割 68

2.11 习题 72

第3章 基本链表 75

3.1 内存动态分配 76

3.1.1 函数malloc() 76

3.1.2 函数free() 80

3.2.1 动态数据结构的声明 81

3.2 链表的创建 81

3.2.2 内存的分配 82

3.2.3 基本链表的创建 84

3.3 链表的遍历 88

3.4 链表的链接 91

3.5 链表内结点的删除 94

3.6 释放链表的内存空间 98

3.7 链表内结点的插入 102

3.8 链表结构的反转 106

3.9 使用头结点的链表 109

3.10 习题 112

第4章 复杂链表 115

4.1 循环链表结构 116

4.1.1 循环链表的创建 116

4.1.2 循环链表内结点的插入 119

4.1.3 循环链表内结点的删除 122

4.1.4 再论循环链表的插入和删除操作 126

4.1.5 内存管理 129

4.2 含头结点的循环链表结构 135

4.2.1 处理多项式 135

4.2.2 再论稀疏数组表示法 140

4.3 双向链表结构 145

4.3.1 双向链表的创建 145

4.3.2 双向链表内结点的插入 149

4.3.3 双向链表内结点的删除 152

4.4 循环双向链表结构 157

4.5 含头结点的循环双向链表结构 161

4.6 习题 161

第5章 栈与队列 163

5.1 使用数组结构创建栈 164

5.2 使用链表创建栈 170

5.3 表达式表示法的种类 177

5.4 中序表达式的计算 179

5.5 前序表达式的计算 185

5.6 后序表达式的计算 190

5.7 中序表达式转成后序表达式 193

5.8 使用栈做回溯控制 198

5.9 队列的应用 203

5.10 使用数组结构创建队列 204

5.11 循环队列 209

5.12 使用链表创建队列 212

5.13 双队列 218

5.13.1 输入限制性双队列 218

5.13.2 输出限制性双队列 221

5.14 习题 224

第6章 递归函数 227

6.1 递归的基础 228

6.2.1 一般函数的调用 230

6.2 递归函数的内部处理过程 230

6.2.2 递归函数的调用 231

6.2.3 递归函数的实际处理过程 233

6.3 递归的链表创建和输出 235

6.4 汉诺塔问题 241

6.5 走迷宫问题 245

6.6 N皇后问题 248

6.7 习题 252

第7章 二叉树 255

7.1 树的基本概念 256

7.2 二叉树的基本概念 257

7.3.1 二叉树数表示法 258

7.3 二叉树的表示法 258

7.3.2 二叉树结构数组表示法 261

7.3.3 二叉树链表结构表示法 264

7.4 二叉树的遍历 267

7.4.1 中序遍历方式 268

7.4.2 前序遍历方式 271

7.4.3 后序遍历方式 274

7.5 二叉树的递归创建法 277

7.6 二叉树的查找方法 279

7.7 二叉树内结点的删除 282

7.8 二叉树的复制 289

7.9 线索二叉树 291

7.10 树的二叉树表示法 297

7.11 树的应用:处理表达式 298

7.12 习题 302

第8章 图 305

8.1 图的基础 306

8.2 图的表示法 307

8.2.1 邻接矩阵表示法 307

8.2.2 邻接表示法 309

8.2.3 邻接多重表表示法 312

8.3.1 深度优先搜索法 318

8.3 图的遍历 318

8.3.2 广度优先搜索法 321

8.4 图的路径表示法 325

8.5 最短路径的求法 326

8.5.1 一个顶点到多顶点 326

8.5.2 各顶点到其他顶点的求法 330

8.6 图的拓扑排序 333

8.7 生成树 339

8.8 最小成生树 340

8.9 习题 346

第9章 查找方法 347

9.1 程序计数的原理 348

9.2 函数O()——Big Oh 349

9.3 查找的基础 352

9.4 顺序查找法 352

9.5 折半查找法 357

9.6 斐波纳契查找法 362

9.7 插补查找法 366

9.8 二叉查找树查找法 369

9.9 散列查找法 372

9.9.1 散列函数 373

9.9.2 线性探测法 375

9.9.3 拉链法 380

9.10 习题 384

第10章 内部排序法 385

10.1 排序的基础 386

10.2 冒泡排序法 386

10.3 选择排序法 392

10.4 插入排序法 394

10.5 希尔排序法 396

10.6 快速排序法 401

10.7 二叉查找树排序法 405

10.8 堆排序法 407

10.9 习题 412

第11章 外部排序法 415

11.2 归并排序法 416

11.1 外部排序法 416

11.3 直接归并排序法 420

11.4 文件的快速排序法 425

11.5 习题 428

第12章 OOP与数据结构 429

12.1 OOP面向对象的基础 430

12.1.1 对象的基本概念 430

12.1.2 面向对象的程序分析 430

12.1.3 面向对象程序语言 431

12.2 C十十的类与对象 431

12.2.1 C十十的标准输出与输入 432

12.2.2 类与对象 433

12.2.3 类的构造函数 436

12.2.4 类的析构函数 439

12.3 字符串类实现 442

12.4 链表类实现 445

12.5 栈类实现 449

12.5.1 数组栈类实现 449

12.5.2 链表栈类实现 452

12.6 二叉树类实现 455

12.7 习题 459

附录A 常用字符与ASCII代码对照表 461

附录B 习题解答 463