图书目录

目 录

第1 章 数据结构与算法 ............................................................................................... 1

开场白 ..........................................................................................................................1

1.1 案例提出——高斯的巧妙解题 .........................................................................2

1.2 知识点学习 .........................................................................................................3

1.2.1 数据结构 ................................................................................................3

1.2.2 算法 ......................................................................................................12

1.2.3 数据结构+ 算法= 程序 ......................................................................17

1.3 案例问题解决 ...................................................................................................17

1.3.1 1787 年高斯算法——比较算法优劣 .................................................17

1.3.2 2014 年高斯算法——比较结构优劣 .................................................18

1.4 知识与技能扩展 ...............................................................................................18

课后习题 ....................................................................................................................19

上机实战 ....................................................................................................................20

第2 章 线性表 ............................................................................................................. 22

开场白 ........................................................................................................................22

2.1 案例提出——约瑟夫与海盗 ...........................................................................23

2.2 知识点学习 .......................................................................................................23

2.2.1 线性表 ..................................................................................................23

2.2.2 线性表的顺序存储结构 ......................................................................25

2.2.3 线性表的链式存储结构 ......................................................................30

2.2.4 静态链表 ..............................................................................................42

2.3 案例问题解决 ...................................................................................................42

2.3.1 用顺序表解决约瑟夫问题 ..................................................................43

2.3.2 用循环链表解决约瑟夫问题 ..............................................................44

2.4 知识与技能扩展 ...............................................................................................47

课后习题 ....................................................................................................................48

上机实战 ....................................................................................................................48

数据结构案例教程(C/C++ 版)

IV

第3 章 栈和队列 ......................................................................................................... 50

开场白 ........................................................................................................................50

3.1 案例提出——迷宫问题 ...................................................................................51

3.2 知识点学习 .......................................................................................................52

3.2.1 栈 ..........................................................................................................52

3.2.2 队列 ......................................................................................................63

3.3 案例问题解决 ...................................................................................................71

3.3.1 用栈来解决迷宫问题 ..........................................................................71

3.3.2 用队列来解决迷宫问题 ......................................................................75

3.4 知识与技能扩展 ...............................................................................................79

课后习题 ....................................................................................................................80

上机实战 ....................................................................................................................81

第4 章 串 ...................................................................................................................... 83

开场白 ........................................................................................................................83

4.1 案例提出——埃特巴什码 ...............................................................................84

4.2 知识点学习 .......................................................................................................85

4.2.1 串的基本概念 ......................................................................................85

4.2.2 串的存储结构 ......................................................................................86

4.2.3 串的模式匹配 ....................................................................................100

4.3 案例问题解决 .................................................................................................102

4.3.1 顺序结构埃特巴什码 ........................................................................102

4.3.2 链式结构埃特巴什码 ........................................................................105

4.4 知识与技能扩展——KMP 算法 ...................................................................109

课后习题 ..................................................................................................................112

上机实战 ..................................................................................................................113

第5 章 递归 ................................................................................................................ 115

开场白 ......................................................................................................................115

5.1 案例提出——验证黄金分割 .........................................................................116

5.2 知识点学习 .....................................................................................................117

5.2.1 什么是递归 ........................................................................................117

5.2.2 递归调用的过程 ................................................................................120

5.2.3 递归算法的设计 ................................................................................120

5.3 案例问题解决——验证黄金分割 .................................................................122

5.4 知识与技能扩展——递归转换 .....................................................................123

课后习题 ..................................................................................................................125

上机实战 ..................................................................................................................126

第6 章 树 .................................................................................................................... 128

开场白 ......................................................................................................................128

目 录

V

6.1 案例提出——高效的电文编译 .....................................................................129

6.2 知识点学习 .....................................................................................................129

6.2.1 树的基本概念 ....................................................................................129

6.2.2 二叉树 ................................................................................................136

6.2.3 哈夫曼树 ............................................................................................153

6.3 案例问题解决 .................................................................................................158

6.4 知识与技能扩展——二叉树遍历非递归算法 .............................................162

课后习题 ..................................................................................................................169

上机实战 ..................................................................................................................170

第7 章 图 .................................................................................................................... 172

开场白 ......................................................................................................................172

7.1 案例提出——道路畅通与伤员急救问题的解决 .........................................173

7.2 知识点学习 .....................................................................................................175

7.2.1 图的基本概念 ....................................................................................175

7.2.2 图的存储结构 ....................................................................................177

7.2.3 图的遍历 ............................................................................................183

7.2.4 最小生成树 ........................................................................................187

7.2.5 有向无环图及其应用 ........................................................................191

7.2.6 单源最短路径——迪杰斯特拉算法 ................................................197

7.3 案例问题解决 .................................................................................................201

7.3.1 省政府“畅通工程”——普里姆算法 ............................................201

7.3.2 伤员急需运送——迪杰斯特拉算法 ................................................203

7.4 知识与技能扩展——弗洛伊德算法 .............................................................205

课后习题 ..................................................................................................................207

上机实战 ..................................................................................................................208

第8 章 查找 ................................................................................................................ 210

开场白 ......................................................................................................................210

8.1 案例提出——词典中查找单词 .....................................................................211

8.2 知识点学习 .....................................................................................................211

8.2.1 查找的基本概念 ................................................................................211

8.2.2 线性表的查找 ....................................................................................212

8.2.3 树表查找——二叉排序树 ................................................................218

8.3 案例问题解决 .................................................................................................226

8.4 知识与技能扩展——哈希表查找 .................................................................227

课后习题 ..................................................................................................................231

上机实战 ..................................................................................................................232

第9 章 内排序 ........................................................................................................... 234

开场白 ......................................................................................................................234

数据结构案例教程(C/C++ 版)

VI

9.1 案例提出——光棍节的排序活动 .................................................................235

9.2 知识点学习 .....................................................................................................236

9.2.1 排序的基本概念 ................................................................................236

9.2.2 插入排序 ............................................................................................237

9.2.3 交换排序 ............................................................................................240

9.2.4 选择排序 ............................................................................................244

9.2.5 归并排序 ............................................................................................249

9.2.6 基数排序 ............................................................................................252

9.3 案例问题解决 .................................................................................................253

9.4 知识与技能扩展——各种内排序方法的比较和选择 .................................256

课后习题 ..................................................................................................................257

上机实战 ..................................................................................................................258

参考文献 ........................................................................................................................ 260