当前位置:首页 > 工业技术
数据结构(C#语言版)
数据结构(C#语言版)

数据结构(C#语言版)PDF电子书下载

工业技术

  • 电子书积分:11 积分如何计算积分?
  • 作 者:雷军环,邓文达,刘震编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2009
  • ISBN:9787302190479
  • 页数:278 页
图书介绍:本书通过丰富案例介绍了各种数据结构及其算法。
《数据结构(C#语言版)》目录

第1章 数据结构和算法简介 1

1.1 问题引入 1

1.1.1 查找电话号码问题 1

1.1.2 问题求解基本步骤 3

1.2 认识数据结构 3

1.2.1 数据的概念 3

1.2.2 数据元素和数据项 3

1.2.3 数据结构的概念 4

1.2.4 数据结构的存储 5

1.3 认识算法 8

1.3.1 算法的定义及特征 8

1.3.2 算法性能分析与度量 9

1.4 寻求问题求解的实现方法 10

本章小结 10

综合练习 11

第2章 解决线性表的编程问题 13

学习情境:用线性表解决学生成绩表的编程 13

2.1 认识线性表 13

2.1.1 分析线性表的逻辑结构 13

2.1.2 识别线性表的基本操作 14

2.2 用顺序表解决线性表的编程问题 15

2.2.1 用顺序表表示线性表 16

2.2.2 对顺序表进行操作 17

2.2.3 顺序表在学生成绩表中的应用 21

独立实践 25

2.3 用单链表解决线性表的编程问题 25

2.3.1 用单链表表示线性表 26

2.3.2 对单链表进行操作 27

2.3.3 单链表在学生成绩表中的应用 35

独立实践 36

2.4 用双向链表解决线性表的编程问题 36

2.4.1 用双向链表表示线性表 36

2.4.2 对双向链表进行操作 38

2.4.3 双向链表在学生成绩表中的应用 44

独立实践 44

2.5 用循环链表解决线性表的编程问题 45

2.5.1 用循环链表表示线性表 45

2.5.2 对循环链表进行操作 45

2.5.3 循环链表在学生成绩表中的应用 46

独立实践 46

2.6 度量不同存储结构的算法效率 46

2.6.1 分析顺序表的算法效率 46

2.6.2 分析单链表的算法效率 48

本章小结 49

综合练习 49

第3章 解决堆栈的编程问题 51

学习情境:用堆栈解决火车车厢重排问题的编程 51

3.1 认识堆栈 52

3.1.1 分析堆栈的逻辑结构 52

3.1.2 识别堆栈的基本操作 53

3.2 用顺序栈解决堆栈的编程问题 54

3.2.1 用顺序栈表示堆栈 54

3.2.2 对顺序栈进行操作 56

3.2.3 用顺序栈解决火车车厢重排问题的编程 59

3.3 用链栈解决堆栈的编程问题 62

3.3.1 用链栈表示堆栈 62

3.3.2 对链栈进行操作 64

3.3.3 用链栈解决火车车厢重排问题的编程 67

独立实践 69

本章小结 70

综合练习 70

第4章 解决队列的编程问题 72

学习情境:用队列解决银行排队叫号软件的编程 72

4.1 认识队列 73

4.1.1 分析队列的逻辑结构 73

4.1.2 识别队列的基本操作 74

4.2 用顺序队列解决队列的编程问题 75

4.2.1 用顺序存储结构表示队列 75

4.2.2 对顺序队列进行操作 78

4.2.3 用循环顺序队列解决银行排队叫号软件的编程 82

4.3 用链队列解决队列的编程问题 85

4.3.1 用链队列表示队列 85

4.3.2 对链队列进行操作 87

4.3.3 用链队列解决银行排队叫号软件的编程 91

独立实践 92

本章小结 92

综合练习 93

第5章 解决串的编程问题 94

学习情境:用串解决“以一敌百”游戏的编程 94

5.1 认识串 95

5.1.1 分析串的逻辑结构 95

5.1.2 识别串的基本操作 96

5.2 用顺序存储解决串的编程问题 97

5.2.1 用顺序存储结构表示串 97

5.2.2 对顺序串进行操作 98

5.2.3 用顺序串解决“以一敌百”游戏的编程 104

独立实践 108

本章小结 108

综合练习 109

第6章 解决数组的编程问题 110

学习情境:用数组解决数学魔术游戏编程 110

6.1 认识数组 110

6.1.1 分析数组的逻辑结构 111

6.1.2 识别数组的基本操作 111

6.1.3 用顺序存储结构存储数组 112

6.1.4 编程实现数组的基本操作 113

6.1.5 用数组解决数学魔术游戏的编程 113

独立实践 114

学习情境:用特殊矩阵解决查询城市间的距离的编程 115

6.2 认识特殊矩阵 116

6.2.1 分析特殊矩阵的逻辑结构 116

6.2.2 特殊矩阵的压缩存储 117

6.2.3 用特殊矩阵解决查询城市间距离的编程 118

独立实践 119

学习情境:用稀疏矩阵解决超市物品购买数据的编程 119

6.3 认识稀疏矩阵 120

6.3.1 描述稀疏矩阵的逻辑结构 120

6.3.2 稀疏矩阵的压缩存储 121

6.3.3 编程实现稀疏矩阵的基本运算 123

6.3.4 用稀疏矩阵实现超市物品购买数据的编程 125

独立实践 128

本章小结 128

综合练习 129

第7章 解决二叉树的编程问题 131

学习情境:解决快速搜索磁盘文件中记录的问题 131

7.1 认识二叉树 132

7.1.1 分析二叉树的逻辑结构 133

7.1.2 识别二叉树的基本操作 135

7.1.3 识别二叉树的主要性质 135

7.2 二叉树的存储实现 136

7.2.1 用顺序存储结构表示二叉树 136

7.2.2 用链式存储结构表示二叉树 137

7.3 二叉树的遍历方法及递归实现 143

7.4 用二叉搜索树解决快速搜索磁盘文件中记录的问题 147

独立实践 150

7.5 最优二叉树——哈夫曼树 151

7.5.1 哈夫曼树的基本概念 151

7.5.2 哈夫曼树的构造算法 152

本章小结 156

综合练习 157

第8章 解决树和森林的编程问题 158

学习情境:用树来解决学院组织结构的编程问题 158

8.1 认识树 158

8.1.1 分析树的逻辑结构 159

8.1.2 树的逻辑表示 161

8.1.3 识别树的基本操作 162

8.2 实现树的存储 163

8.2.1 用多重链表表示法存储树 163

8.2.2 用双亲表示法存储树 168

8.2.3 用孩子链表表示法存储树 170

8.2.4 用双亲孩子表示法存储树 173

8.2.5 用孩子兄弟表示法存储树 175

8.2.6 用多重链表表示法解决学院组织结构的编程 176

8.3 树、森林与二叉树的转换 177

8.3.1 树转换为二叉树 177

8.3.2 森林转换为二叉树 178

8.3.3 二叉树转换为树和森林 178

8.4 解决树和森林的遍历问题 179

8.4.1 树的遍历 179

8.4.2 森林的遍历 181

8.5 树的应用 182

8.5.1 集合的表示 182

独立实践 184

本章小结 184

综合练习 184

第9章 解决图的编程问题 186

学习情境:用图解决高速公路交通网的编程 186

9.1 认识图 186

9.1.1 图的定义和术语 187

9.1.2 识别图的基本操作 188

9.2 用邻接矩阵解决图的编程问题 189

9.2.1 用邻接矩阵表示图 189

9.2.2 对邻接矩阵进行操作 191

9.2.3 使用邻接矩阵解决高速公路交通网的存储问题 194

9.3 用邻接表解决图的编程问题 195

9.3.1 用邻接表表示图 195

9.3.2 对邻接表进行操作 198

9.3.3 使用邻接表解决高速公路交通网的存储问题 203

独立实践 205

9.4 解决图的遍历问题 205

9.4.1 深度优先搜索 205

9.4.2 广度优先搜索 207

9.4.3 使用图的遍历解决高速公路交通网城市的遍历 209

独立实践 210

9.5 图的最短路径问题 210

9.5.1 Dijkstra算法的引入 210

9.5.2 分析高速公路交通网的最短路径 211

9.5.3 编码实现Dijkstra算法 214

9.5.4 用Dijkstra算法解决高速公路交通网中最短路径的编程 215

独立实践 216

本章小结 216

综合练习 216

第10章 实现排序算法 218

学习情境:实现第29届奥运会奥运奖牌的排名 218

10.1 认识排序 219

10.1.1 排序的概念 219

10.1.2 排序的分类 219

10.2 插入排序 220

10.2.1 直接插入排序 221

10.2.2 希尔排序 222

10.3 选择排序 224

10.3.1 直接选择排序 224

10.3.2 堆排序 226

10.4 交换排序 230

10.4.1 冒泡排序 230

10.4.2 快速排序 232

10.5 归并排序 234

10.5.1 归并排序 235

10.6 分配排序 237

10.6.1 基数排序 237

10.7 编程实现第29届奥运会奥运奖牌的排名 240

独立实践 247

本章小结 248

综合练习 249

第11章 执行查询算法 250

学习情境:根据指定的条件查询第29届奥运会获奖情况 250

11.1 熟悉查找的基本概念 251

11.2 线性表查找技术 251

11.2.1 顺序查找 251

11.2.2 二分查找 253

11.2.3 分块查找 255

11.3 哈希表查询技术 257

11.3.1 认识哈希表 257

11.3.2 构造哈希函数 259

11.3.3 解决哈希冲突 260

11.3.4 实现哈希表的查找算法 262

11.3.5 分析哈希表的性能 267

11.4 编程实现第29届奥运会排行榜的查询功能 267

独立实践 275

本章小结 275

综合练习 276

参考文献 278

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