0


数据结构
作者:张娟,谷德丽,孟祥瑞丛书名: ISBN:978-7-5685-2162-8页数: 开本:装帧:平装 出版时间:2019-08-01中图分类:
¥55.00

编辑推荐

本教材重点突出,理论知识剖析清楚,且注重解题思路及实用技巧的培养,具有以下特色:
(1)深入浅出,通俗易懂.如何系统而全面地掌握数据结构的解题思路和算法设计思想是学习数据结构课程的难点,而有效理解数据表示和数据处理、正确分析算法设计的要点、建立算法设计思路成为学好本教材的关键.本教材详细介绍了线性表、栈和队列、串、数组和广义表、树和图等数据结构,以及在程
序设计过程中经常遇到的查找和排序问题.全书共分10章,每章从应用出发,系统地进行理论阐述并配以精确的算法分析与描述,帮助读者快速理解数据结构中的各个知识点、掌握重点内容、突破学习瓶颈,从而使读者更好地应对各种应用需求.

(2)本教材中的算法例程均采用C语言编写,可在C语言环境下直接调试运行.目前,同类图书中的算法描述大多比较粗略,且采用伪代码描述,没有使用真正的计算机语言实现,不便于学生理解和参考.本教材中的主要算法在逻辑分析之后,

均采用C语言编写实现,学生在学习完理论知识后可直接调用算法程序调试运行,从而获得直观印象,帮助学生更好地理解算法细节,激发学生的学习热情.
(3)理论联系实际.教材中每章末都附有本章小结和典型习题,可以帮助学生更好地规纳重点知识并检测学习效果.

 

第1章 绪论 1

1.1 引言 1

1.1.1 为什么要学习数据结构 1
1.1.2 数据结构课程的主要内容 1
1.2 基本概念和常用术语 4
1.3 数据的逻辑结构、存储结构及运算 5
1.3.1 数据的逻辑结构 5
1.3.2 数据的存储结构 6
1.3.3 数据的运算 6
1.4 算法和算法分析 6
1.4.1 算法 7
1.4.2 算法设计的要求 7
1.4.3 算法效率的度量 7
1.4.4 算法的存储空间需求 9
1.5 本章小结 10
习题1 10

第2章 线性表 13

2.1 线性表的逻辑结构 13

2.1.1 线性表的定义 13
2.1.2 线性表的基本运算 14
2.2 线性表的顺序存储及运算实现 15
2.2.1 线性表的顺序存储结构 15
2.2.2 顺序表上基本运算的实现 16
2.3 线性表的链式存储及运算实现 19
2.3.1 单链表 20
2.3.2 循环链表 27
2.3.3 双向链表 34
2.3.4 静态链表 38
2.4 顺序表和链表的比较 42
2.5 线性表的应用 43
2.5.1 约瑟夫环问题 43
2.5.2 一元多项式运算器的分析与实现 46
2.6 本章小结 51
习题2 52

第3章 栈和队列 57

3.1 栈57

3.1.1 栈的定义及其基本运算 57
3.1.2 栈的顺序存储结构及运算 58
3.1.3 栈的链式存储结构及运算 61
3.2 栈的应用 63
3.2.1 数制转换 63
3.2.2 括号匹配的检验 65
3.2.3 表达式求值 66
3.3 栈与递归 72
3.3.1 递归的概念 72
3.3.2 递归的算法 72
3.4 队列 75
3.4.1 队列的定义和基本运算 75
3.4.2 循环队列——队列的顺序表示和实现 76
3.4.3 链队——队列的链式表示和实现 79
3.5 队列的应用 82
3.5.1 Josephus问题 82
3.5.2 舞伴问题 84
3.6 本章小结 85
习题3 86

第4章 串 89

4.1 串及其基本运算 89

4.1.1 串的基本概念 89
4.1.2 串的基本运算 90
4.2 串的存储结构 90
4.2.1 串的顺序存储结构 90
4.2.2 串的链式存储结构 95
4.3 串的模式匹配算法 100
4.3.1 朴素的模式匹配算法 100
4.3.2 KMP算法 102
4.4 串的应用 106
4.4.1 判断给定字符串是否为回文 106
4.4.2 分离字符串中的单词 107
4.5 本章小结 110
习题4 110

第5章 数组和广义表 113

5.1 数组的定义和运算 113

5.2 数组的顺序存储 114
5.3 矩阵的压缩存储 115
5.3.1 特殊矩阵 115
5.3.2 稀疏矩阵 119
5.4 广义表 123
5.4.1 广义表的定义 123
5.4.2 广义表的存储结构 124
5.4.3 广义表的基本运算 125
5.5 广义表的应用 130
5.5.1 广义表的建立 130
5.5.2 高斯消元法求解方程组 132
5.6 本章小结 137
习题5 138

第6章 树141

6.1 树的概念和操作 141

6.1.1 树的定义 141
6.1.2 树的基本术语 142
6.1.3 树的基本操作 143
6.1.4 树的表示 144
6.2 二叉树 144
6.2.1 二叉树的概念 144
6.2.2 二叉树的性质 145
6.2.3 二叉树的存储结构 147
6.2.4 二叉树的基本操作 149
6.3 二叉树的遍历 150
6.3.1 二叉树的遍历方法及递归实现 150
6.3.2 二叉树遍历的非递归实现 152
6.3.3 二叉树的层次遍历 156
6.3.4 二叉树遍历算法的应用 157
6.4 线索二叉树 161
6.4.1 线索二叉树的基本概念 161
6.4.2 线索二叉树的基本操作 162
6.5 树和森林 164
6.5.1 树的存储结构 164
6.5.2 树、森林与二叉树的相互转换 167
6.5.3 树和森林的遍历 171
6.6 二叉树的应用 172
6.6.1 哈夫曼树 172
6.6.2 哈夫曼编码 175
6.6.3 表达式求值 178
6.7 本章小结 180
习题6 181

第7章 图 186

7.1 图的定义和术语 186

7.1.1 图的基本概念 186
7.1.2 图的基本操作 188
7.2 图的存储结构 189
7.2.1 邻接矩阵 189
7.2.2 邻接表 191
7.2.3 十字链表 192
7.2.4 邻接多重表 194
7.3 图的遍历 195
7.3.1 深度优先搜索遍历 195
7.3.2 广度优先搜索遍历 197
7.4 图的应用 199
7.4.1 最小生成树 199
7.4.2 拓扑排序 204
7.4.3 关键路径 207
7.4.4 最短路径 212
7.5 本章小结 216
习题7 217

第8章 查找 222

8.1 查找的基本概念 222

8.2 线性表查找 224
8.2.1 顺序查找 224
8.2.2 折半查找 225
8.2.3 分块查找 227
8.3 树表查找 228
8.3.1 二叉排序树 228
8.3.2 平衡二叉树 235
8.3.3 B树 241
8.4 散列表查找 246
8.4.1 散列表 246
8.4.2 构造散列函数的方法 247
8.4.3 解决冲突的方法 248
8.4.4 散列表上的查找 251
8.4.5 散列技术性能分析 251
8.5 本章小结 253
习题8 254

第9章 排序 257

9.1 排序的基本概念及方法分类 257

9.1.1 排序概念 257
9.1.2 排序方法分类 258
9.1.3 排序数据的数据类型说明 259
9.2 插入排序 259
9.2.1 直接插入排序 259
9.2.2 折半插入排序 260
9.2.3 希尔排序 261
9.3 交换排序 262
9.3.1 起泡排序 262
9.3.2 快速排序 264
9.4 选择排序 266
9.4.1 简单选择排序 266
9.4.2 堆排序 267
9.5 归并排序 269
9.6 基数排序 271
9.7 内部排序的比较与选择 273
9.7.1 内部排序算法性能比较 273
9.7.2 内部排序算法的选择 273
9.8 外部排序简介 274
9.9 本章小结 275
习题9 276

第10章 文件 280

10.1 文件的基础知识 280

10.2 顺序文件 282
10.3 索引文件 283
10.3.1 索引文件的特点和术语 283
10.3.2 索引文件的存储 284
10.3.3 索引文件的检索与修改 284
10.4 索引顺序文件 285
10.4.1 ISAM文件 285
10.4.2 VSAM文件 286
10.5 散列文件 287
10.5.1 散列文件的存储 287
10.5.2 散列文件的查找 288
10.5.3 散列文件的删除操作 288
10.6 多关键字文件 288
10.6.1 多重表文件的概念 289
10.6.2 倒排文件 290
10.7 本章小结 290

习题10 291

参考文献 294


  • 数据结构——课件(张娟)

    课程: 数据结构 类型: zip 大小:37.55 MB上传时间: 2022-08-05 13:43:42

  • 数据结构——教学大纲

    课程: 数据结构 类型: docx 大小:20.25 KB上传时间: 2022-08-05 13:43:42

全部下载