项目一 绪论 1
任务一 数据结构的基本概念 1
1.1.1 学习数据结构的原因 1
1.1.2 什么是数据结构 2
1.1.3 基本概念和术语 3
1.1.4 数据类型与抽象数据类型 5
任务二 算法和算法分析简介 7
1.2.1 算法 7
1.2.2 算法的描述 8
1.2.3 算法评价 14
实训 验证哥德巴赫猜想 15
小结 17
习题一 17
项目二 线性表 18
任务一 线性表的定义和基本操作 18
任务二 线性表的顺序存储结构 19
2.2.1 线性表的顺序存储结构 19
2.2.2 线性表在顺序存储结构下的运算 20
任务三 线性表的链式存储结构 25
2.3.1 线性链表 25
2.3.2 循环链表 29
2.3.3 双向链表 30
实训 顺序表和链表的应用 33
小结 35
习题二 35
项目三 栈和队列 37
任务一 栈 37
3.1.1 栈的定义及其运算 37
3.1.2 栈的顺序存储结构 38
3.1.3 栈的链式存储结构 40
任务二 算术表达式求值 42
任务三 队列 45
3.3.1 队列的定义及其运算 46
3.3.2 队列的顺序存储结构 47
3.3.3 队列的链式存储结构 52
3.3.4 其他队列 54
实训 栈和队列的应用 54
小结 57
习题三 57
项目四 串 59
任务一 串的基本概念 59
4.1.1 串的定义 59
4.1.2 主串和子串 59
任务二 串的存储结构 60
4.2.1 串值的存储 60
4.2.2 串名的存储映像 62
任务三 串的基本运算及其实现 62
4.3.1 串的基本运算 62
4.3.2 串的基本运算的实现 63
实训 文本编辑系统 67
小结 70
习题四 70
项目五 多维数组和广义表 72
任务一 多维数组 72
5.1.1 多维数组的概念 72
5.1.2 多维数组在计算机内的存放 73
任务二 多维数组的存储结构 73
5.2.1 行优先顺序 73
5.2.2 列优先顺序 73
任务三 特殊矩阵及其压缩存储 74
5.3.1 特殊矩阵 74
5.3.2 压缩存储 75
任务四 稀疏矩阵 77
5.4.1 稀疏矩阵的存储 77
5.4.2 稀疏矩阵的运算 82
任务五 广义表 89
5.5.1 基本概念 89
5.5.2 存储结构 91
5.5.3 基本运算 92
实训 迷宫问题 94
小结 98
习题五 99
项目六 树 101
任务一 树结构的定义与基本操作 101
6.1.1 树的定义及相关术语 101
6.1.2 树的存储结构 102
6.1.3 树的基本操作 103
任务二 二叉树 103
6.2.1 二叉树的定义与基本操作 103
6.2.2 二叉树的性质 105
6.2.3 二叉树的存储结构 106
6.2.4 树与二叉树的相互转换 110
任务三 遍历二叉树 111
6.3.1 先序遍历 112
6.3.2 中序遍历 113
6.3.3 后序遍历 114
6.3.4 层次遍历 115
任务四 线索二叉树 116
6.4.1 线索二叉树的基本概念 116
6.4.2 中序次序线索化算法 117
任务五 二叉排序树 122
6.5.1 二叉排序树的定义 122
6.5.2 二叉排序树的生成 122
6.5.3 删除二叉排序树上的结点 125
任务六 哈夫曼树和哈夫曼算法 128
6.6.1 哈夫曼树的定义 128
6.6.2 构造哈夫曼树——哈夫曼算法 129
6.6.3 哈夫曼树的应用 130
实训 哈夫曼编码 131
小结 141
习题六 142
项目七 图 143
任务一 基本定义和术语 143
7.1.1 基本定义和术语 143
7.1.2 抽象数据类型 145
任务二 图的存储结构 148
7.2.1 邻接矩阵 148
7.2.2 邻接表 149
任务三 图的遍历 151
7.3.1 深度优先搜索遍历 151
7.3.2 广度优先搜索遍历 154
任务四 最小生成树 156
任务五 最短路径 161
7.5.1 单源点最短路径 162
7.5.2 所有顶点对之间的最短路径 165
任务六 拓扑排序 168
实训 图的遍历应用 170
小结 172
习题七 173
项目八 查找 175
任务一 顺序查找 175
任务二 折半查找 177
任务三 分块查找 179
任务四 哈希表 181
8.4.1 哈希表和哈希函数的概念 182
8.4.2 哈希函数的构造方法 183
8.4.3 冲突处理 185
实训 学生档案管理系统 188
小结 195
习题八 196
项目九 排序 197
任务一 插入排序 197
9.1.1 线性插入排序 197
9.1.2 折半插入排序 199
任务二 希尔排序 200
任务三 选择排序 202
任务四 堆排序 203
任务五 快速排序 208
任务六 归并排序 210
任务七 基数排序 213
任务八 外部排序 216
任务九 各种排序方法的比较 217
实训 排序系统 219
小结 229
习题九 230
参考文献 231