简介
《数据结构》是为高等院校开设该课程精心编著的教材。《数据结构》讨论的典型数据结构包括表、堆栈、队列、数组、串、树、二叉树、图、递归程序设计、排序和查找方法,典型存储结构包括顺序存储结构、链式存储结构以及这两种典型存储结构的结合。数据结构是计算机等专业必修的核心课程。《数据结构》的特点是概念叙述简洁,深入浅出,概念讨论和实际设计相结合,实际设计例子典型且完整,均采用C语言设计实现。
本教材是普通高等教育“十五”国家级规划教材。《数据结构》既可作为高等院校计算机等专业的教材,也可作为其他相关专业学生以及自考生的教材或参考书。
目录
第1章 绪论 1
1.1 数据结构的基本概念 1
1.2 抽象数据类型和软件构造方法 4
1.3 算法和算法的时间复杂度 5
1.3.1 算法 5
1.3.2 算法设计的目标 7
1.3.3 算法时间效率的度量 7
1.4 算法设计 11
1.5 算法书写规范 14
1.6 本课程内容概述 14
习题一 15
第2章 线性表 17
2.1 线性表的抽象数据类型 17
2.2 线性表的顺序表示和实现 18
2.2.1 顺序表的存储结构 18
2.2.2 顺序表的操作实现 19
2.2.3 顺序表操作的效?
2.3 线性表的链式表示和实现 26
2.3.1 单链表的存储结构 26
.2.3.2 单链表的操作实现 29
2.3.3 单链表操作的效率分析 34
2.3.4 单链表应用举例 35
2.3.5 循环单链表 36
2.3.6 双向链表 37
2.4 设计举例 40
2.5 本章小结 46
习题二 47
第3章 堆栈和队列 49
3.1 堆栈 49
3.1.1 堆栈和堆栈的抽象数据类型 49
3.1.2 堆栈的顺序表示和实现 50
3.1.3 堆栈的链式表示和实现 53
*3.2 堆栈应用--表达式计算 58
3.3 队列 61
3.3.1 队列和队列抽象数据类型 61
3.3.2 顺序队列 62
3.3.3 顺序循环队列的表示和实现 63
3.3.4 链式队列 66
3.3.5 队列的应用 69
*3.4 优先级队列 71
3.4.1 顺序优先级队列的设计和实现 71
3.4.2 优先级队列的应用 74
3.5 本章小结 75
习题三 76
第4章 串 79
4.1 串 79
4.1.1 串及其基本概念 79
4.1.2 串的抽象数据类型 80
4.1.3 c语言的串函数 81
4.2 串的存储结构 83
4.2.1 串的顺序存储结构 83
4.2.2 串的链式存储结构 84
4.3 串基本操作的实现算法 85
4.4 串的模式匹配算法 90
4.4.1 brute瞗orce算法 90
4.4.2 kmp算法 92
4.4.3 brute force算法和kmp算法的比较 96
4.5 本章小结 98
习题四 99
第5章 数组 101
5.1 数组的实现机制 101
5.2 动态数组的设计方法 102
5.3 特殊矩阵的压缩存储 105
5.4 稀疏矩阵的压缩存储 106
5.4.1 稀疏矩阵的三元组顺序表 106
5.4.2 稀疏矩阵的三元组链表 110
5.5 本章小结 111
习题五 112
第6章 递归 114
6.1 递归的概念 114
6.2 递归算法的执行过程 115
6.3 递归算法的设计方法 118
6.4 递归过程和运行时栈 120
6.5 递归算法的效率分析 122
*6.6 递归算法到非递归算法的转换 123
6.7 设计举例 126
6.7.1 一般递归算法设计举例 126
*6.7.2 回溯法及设计举例 129
6.8 本章小结 133
习题六 134
第7章 树和二叉树 137
7.1 树 137
7.1.1 树的定义 137
7.1.2 树的表示方法 138
7.1.3 树的抽象数据类型 139
7.2 二叉树 140
7.2.1 二叉树的定义 140
7.2.2 二叉树抽象数据类型 141
7.2.3 二叉树的性质 141
7.3 二叉树的设计和实现 143
7.3.1 二叉树的存储结构 143
7.3.2 二叉链存储结构下二叉树的操作实现 145
7.3.3 二叉树的遍历及其实现 147
7.4 线索二叉树 151
7.5 哈夫曼树 153
7.5.1 哈夫曼树的基本概念 153
7.5.2 哈夫曼编码问题 155
*7.5.3 哈夫曼编码问题设计和实现 156
7.6 树的存储结构、转换和遍历 160
7.6.1 树的存储结构 160
7.6.2 树与二叉树的转换 162
7.6.3 树的遍历 163
7.7 本章小结 164
习题七 165
第8章 图 168
8.1 图的基本概念 168
8.1.1 图的基本概念 168
8.1.2 图的抽象数据类型 170
8.2 图的设计和实现 171
8.2.1 图的邻接矩阵存储结构 171
8.2.2 图的邻接表存储结构 172
8.2.3 邻接矩阵存储结构下图的操作实现 173
8.3 图的遍历 177
8.3.1 图的深度和广度优先遍历算法 177
8.3.2 图的深度和广度优先遍历算法设计和实现 178
8.4 最小生成树 181
8.4.1 最小生成树的基本概念 181
8.4.2 普里姆算法 182
*8.4.3 普里姆函数设计和实现 183
8.4.4 克鲁斯卡尔算法 186
8.5 最短路径 187
8.5.1 最短路径的基本概念 187
8.5.2 从一个顶点到其余各顶点的最短路径 188
*8.5.3 狄克斯特拉算法设计和实现 189
8.6 本章小结 192
习题八 192
第9章 排序 195
9.1 排序的基本概念 195
9.2 插入排序 197
9.2.1 直接插入排序 197
9.2.2 希尔排序 199
9.3 选择排序 201
9.3.1 直接选择排序 201
9.3.2 堆排序 202
9.4 交换排序 207
9.4.1 冒泡排序 207
9.4.2 快速排序 209
*9.5 归并排序 211
9.6 综合应用举例 214
9.7 本章小结 215
习题九 216
第10章 查找 218
10.1 查找的基本概念 218
10.2 静态查找表 219
10.2.1 顺序表 219
10.2.2 有序顺序表 220
10.2.3 索引顺序表 222
10.3 动态查找表 224
10.3.1 二叉排序树 224
10.3.2 b-树 231
10.4 哈希表 235
10.4.1 哈希表的基本概念 235
10.4.2 哈希函数构造方法 237
10.4.3 哈希冲突解决方法 238
10.4.4 哈希表设计举例 239
10.5 本章小结 243
习题十 244
附录a 上机实习内容规范 245
附录b 上机实习范例 246
参考文献 257
1.1 数据结构的基本概念 1
1.2 抽象数据类型和软件构造方法 4
1.3 算法和算法的时间复杂度 5
1.3.1 算法 5
1.3.2 算法设计的目标 7
1.3.3 算法时间效率的度量 7
1.4 算法设计 11
1.5 算法书写规范 14
1.6 本课程内容概述 14
习题一 15
第2章 线性表 17
2.1 线性表的抽象数据类型 17
2.2 线性表的顺序表示和实现 18
2.2.1 顺序表的存储结构 18
2.2.2 顺序表的操作实现 19
2.2.3 顺序表操作的效?
2.3 线性表的链式表示和实现 26
2.3.1 单链表的存储结构 26
.2.3.2 单链表的操作实现 29
2.3.3 单链表操作的效率分析 34
2.3.4 单链表应用举例 35
2.3.5 循环单链表 36
2.3.6 双向链表 37
2.4 设计举例 40
2.5 本章小结 46
习题二 47
第3章 堆栈和队列 49
3.1 堆栈 49
3.1.1 堆栈和堆栈的抽象数据类型 49
3.1.2 堆栈的顺序表示和实现 50
3.1.3 堆栈的链式表示和实现 53
*3.2 堆栈应用--表达式计算 58
3.3 队列 61
3.3.1 队列和队列抽象数据类型 61
3.3.2 顺序队列 62
3.3.3 顺序循环队列的表示和实现 63
3.3.4 链式队列 66
3.3.5 队列的应用 69
*3.4 优先级队列 71
3.4.1 顺序优先级队列的设计和实现 71
3.4.2 优先级队列的应用 74
3.5 本章小结 75
习题三 76
第4章 串 79
4.1 串 79
4.1.1 串及其基本概念 79
4.1.2 串的抽象数据类型 80
4.1.3 c语言的串函数 81
4.2 串的存储结构 83
4.2.1 串的顺序存储结构 83
4.2.2 串的链式存储结构 84
4.3 串基本操作的实现算法 85
4.4 串的模式匹配算法 90
4.4.1 brute瞗orce算法 90
4.4.2 kmp算法 92
4.4.3 brute force算法和kmp算法的比较 96
4.5 本章小结 98
习题四 99
第5章 数组 101
5.1 数组的实现机制 101
5.2 动态数组的设计方法 102
5.3 特殊矩阵的压缩存储 105
5.4 稀疏矩阵的压缩存储 106
5.4.1 稀疏矩阵的三元组顺序表 106
5.4.2 稀疏矩阵的三元组链表 110
5.5 本章小结 111
习题五 112
第6章 递归 114
6.1 递归的概念 114
6.2 递归算法的执行过程 115
6.3 递归算法的设计方法 118
6.4 递归过程和运行时栈 120
6.5 递归算法的效率分析 122
*6.6 递归算法到非递归算法的转换 123
6.7 设计举例 126
6.7.1 一般递归算法设计举例 126
*6.7.2 回溯法及设计举例 129
6.8 本章小结 133
习题六 134
第7章 树和二叉树 137
7.1 树 137
7.1.1 树的定义 137
7.1.2 树的表示方法 138
7.1.3 树的抽象数据类型 139
7.2 二叉树 140
7.2.1 二叉树的定义 140
7.2.2 二叉树抽象数据类型 141
7.2.3 二叉树的性质 141
7.3 二叉树的设计和实现 143
7.3.1 二叉树的存储结构 143
7.3.2 二叉链存储结构下二叉树的操作实现 145
7.3.3 二叉树的遍历及其实现 147
7.4 线索二叉树 151
7.5 哈夫曼树 153
7.5.1 哈夫曼树的基本概念 153
7.5.2 哈夫曼编码问题 155
*7.5.3 哈夫曼编码问题设计和实现 156
7.6 树的存储结构、转换和遍历 160
7.6.1 树的存储结构 160
7.6.2 树与二叉树的转换 162
7.6.3 树的遍历 163
7.7 本章小结 164
习题七 165
第8章 图 168
8.1 图的基本概念 168
8.1.1 图的基本概念 168
8.1.2 图的抽象数据类型 170
8.2 图的设计和实现 171
8.2.1 图的邻接矩阵存储结构 171
8.2.2 图的邻接表存储结构 172
8.2.3 邻接矩阵存储结构下图的操作实现 173
8.3 图的遍历 177
8.3.1 图的深度和广度优先遍历算法 177
8.3.2 图的深度和广度优先遍历算法设计和实现 178
8.4 最小生成树 181
8.4.1 最小生成树的基本概念 181
8.4.2 普里姆算法 182
*8.4.3 普里姆函数设计和实现 183
8.4.4 克鲁斯卡尔算法 186
8.5 最短路径 187
8.5.1 最短路径的基本概念 187
8.5.2 从一个顶点到其余各顶点的最短路径 188
*8.5.3 狄克斯特拉算法设计和实现 189
8.6 本章小结 192
习题八 192
第9章 排序 195
9.1 排序的基本概念 195
9.2 插入排序 197
9.2.1 直接插入排序 197
9.2.2 希尔排序 199
9.3 选择排序 201
9.3.1 直接选择排序 201
9.3.2 堆排序 202
9.4 交换排序 207
9.4.1 冒泡排序 207
9.4.2 快速排序 209
*9.5 归并排序 211
9.6 综合应用举例 214
9.7 本章小结 215
习题九 216
第10章 查找 218
10.1 查找的基本概念 218
10.2 静态查找表 219
10.2.1 顺序表 219
10.2.2 有序顺序表 220
10.2.3 索引顺序表 222
10.3 动态查找表 224
10.3.1 二叉排序树 224
10.3.2 b-树 231
10.4 哈希表 235
10.4.1 哈希表的基本概念 235
10.4.2 哈希函数构造方法 237
10.4.3 哈希冲突解决方法 238
10.4.4 哈希表设计举例 239
10.5 本章小结 243
习题十 244
附录a 上机实习内容规范 245
附录b 上机实习范例 246
参考文献 257
数据结构[电子资源.图书]
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×