《数据结构(C语言描述)》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:李学刚,刘斌,杨丹,邱碧龙编著
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2013
  • ISBN:7040372694
  • 页数:259 页
图书介绍:

知识技能篇 3

单元1 数据结构与算法 3

引例描述——矩阵乘积算法分析 4

知识储备 4

1.1 数据结构的概念 5

1.2 数据的逻辑结构与存储结构 6

1.3 算法及算法分析 7

1.3.1 算法及其特性 7

1.3.2 算法分析 8

引例分析 11

同步训练 12

一、单项选择题 12

二、问题解答题 13

单元2 线性表 15

引例描述——体育彩票的生成和中奖查询 16

知识储备 17

2.1 线性表 17

2.1.1 线性表的定义 17

2.1.2 线性表的基本操作 18

2.2 顺序表及其基本操作 19

2.2.1 顺序表(Sequence List) 19

2.2.2 顺序表的基本操作的实现 21

2.3 单链表及其基本操作 25

2.3.1 链表的有关概念 25

2.3.2 链表的基本操作 26

2.4 循环链表和双向链表 35

2.4.1 循环链表(Circular Linked List) 35

2.4.2 双向链表 35

2.5 线性表的应用 38

引例分析与实现 40

同步训练 47

一、单项选择题 47

二、问题解答题 51

三、算法设计题 53

单元3 栈和队列 55

引例描述——数制转换 56

知识储备 56

3.1 栈 56

3.1.1 栈的定义及基本操作 56

3.1.2 顺序栈及基本操作的实现 57

3.1.3 链栈及基本操作的实现 60

3.2 队列 62

3.2.1 队列的定义及基本操作 62

3.2.2 顺序队列及基本操作 63

3.2.3 循环队列 64

3.2.4 链队列及基本操作的实现 67

引例分析与实现 70

同步训练 75

一、单项选择题 75

二、问题解答题 78

三、算法设计题 80

单元4 树与二叉树 81

引例描述——文本文件的加密和解密 82

知识储备 82

4.1 树的概念 82

4.1.1 树的递归定义 83

4.1.2 树结构的基本术语 83

4.1.3 树形结构的逻辑特征 85

4.2 二叉树及其性质 86

4.2.1 二叉树的定义 86

4.2.2 二叉树的性质 86

4.3 二叉树的存储结构 89

4.3.1 二叉树的顺序存储结构 89

4.3.2 二叉树的链式存储结构 91

4.4 二叉树的遍历 93

4.4.1 遍历方案 93

4.4.2 遍历序列 95

4.5 二叉树的基本操作 97

4.5.1 二叉链表的建立 98

4.5.2 二叉链表的基本操作 98

4.6 树和森林 101

4.6.1 树、森林到二叉树的转换 101

4.6.2 树的存储结构 103

4.6.3 树的遍历 106

4.7 哈夫曼树及其应用 107

4.7.1 哈夫曼树(Huffman Tree)的有关概念 107

4.7.2 哈夫曼树的构造 108

4.7.3 哈夫曼算法的实现 110

4.7.4 哈夫曼编码 112

引例分析与实现 116

同步训练 123

一、单项选择题 123

二、问题解答题 126

三、算法设计题 128

单元5 图 129

引例描述——城市间公路网建设最经济方案 130

知识储备 131

5.1 图的概念 131

5.2 图的存储结构 135

5.2.1 图的邻接矩阵表示法 135

5.2.2 图的邻接表表示法 137

5.3 图的遍历 140

5.3.1 图的深度优先遍历 140

5.3.2 图的广度优先遍历 142

5.4 生成树和最小生成树 145

5.4.1 生成树 145

5.4.2 最小生成树 146

5.5 最短路径 149

5.5.1 单源最短路径问题 150

5.5.2 迪杰斯特拉(Dijkstra)算法 150

5.6 拓扑排序 152

5.6.1 拓扑排序定义 152

5.6.2 拓扑排序的方法 154

引例分析与实现 155

同步训练 158

一、单项选择题 158

二、问题解答题 159

三、算法设计题 160

单元6 排序 161

引例描述——不同排序算法的比较 162

知识储备 162

6.1 排序的基本概念 162

6.2 插入排序 164

6.2.1 直接插入排序(Straight Insertion Sort) 164

6.2.2 希尔排序(Shell Sort) 166

6.3 交换排序 168

6.3.1 冒泡排序(Bubble Sort) 168

6.3.2 快速排序(Quick Sort) 169

6.4 选择排序 173

6.4.1 直接选择排序(Straight Select Sort) 173

6.4.2 堆排序 175

6.5 归并排序 183

6.5.1 两路归并排序 183

6.5.2 归并排序方法 184

6.6 分配排序 187

6.6.1 箱排序(Bin Sort) 187

6.6.2 桶排序(Bucket Sort) 188

6.6.3 基数排序(Radix Sort) 190

引例分析与实现 193

同步训练 200

一、单项选择题 200

二、问题解答题 202

三、算法设计题 203

单元7 查找 205

引例描述——高校最低录取分数线查询 206

知识储备 207

7.1 查找的基本概念 207

7.2 静态查找 207

7.2.1 顺序查找(Sequential Search) 207

7.2.2 二分查找(Binary Search) 209

7.2.3 分块查找(Block Search) 210

7.3 动态查找 211

7.3.1 二叉排序树(Binary Sort Tree) 211

7.3.2 二叉排序树上的运算 212

7.4 哈希查找 217

7.4.1 哈希表(Hash Table) 217

7.4.2 哈希函数的构造 218

7.4.3 处理冲突的方法 219

引例分析与实现 221

同步训练 227

一、单项选择题 227

二、问题解答题 228

三、算法设计题 229

技术应用篇 233

单元8 综合实训项目 233

8.1 算术表达式求值 234

8.1.1 总体设计 234

8.1.2 详细设计 236

8.1.3 完整代码 243

8.2 文件目录搜索 248

8.2.1 总体设计 248

8.2.2 详细设计 250

8.2.3 完整代码 253

参考文献 258