第1章 初识数据结构 1
1.1 学籍档案管理系统的数据组织——什么是数据结构 2
1.1.1 任务说明 2
1.1.2 什么是数据结构 2
1.1.3 数据结构的常用术语 2
1.1.4 任务分析 3
1.1.5 小结 3
1.2 五子棋人机对弈系统——数据结构的用途 4
1.2.1 任务说明 4
1.2.2 学习数据结构的意义 4
1.2.3 数据结构的作用 4
1.2.4 任务分析 5
1.2.5 小结 6
1.3 N个对象全排列——数据结构与算法 6
1.3.1 任务说明 6
1.3.2 算法的含义 6
1.3.3 算法的设计要求 6
1.3.4 算法效率的度量 7
1.3.5 任务分析 8
1.3.6 小结 8
1.4 巩固与拓展 8
第2章 线性表 10
2.1 猴子选大王——线性表的顺序存储 10
2.1.1 任务说明 10
2.1.2 线性表的顺序存储 10
2.1.3 任务分析 16
2.1.4 任务实现 16
2.1.5 小结 19
2.2 一元多项式加法运算——线性表的链式存储 20
2.2.1 任务说明 20
2.2.2 单链表 20
2.2.3 单循环链表 29
2.2.4 双向链表 32
2.2.5 循环双向链表 36
2.2.6 任务分析 37
2.2.7 任务实现 38
2.2.8 小结 42
2.3 巩固与拓展 43
第3章 栈和队列 46
3.1 分隔符匹配——顺序栈 47
3.1.1 任务说明 47
3.1.2 顺序栈 47
3.1.3 任务分析 51
3.1.4 任务实现 51
3.1.5 小结 53
3.2 表达式求值——链栈 53
3.2.1 任务说明 53
3.2.2 链栈 53
3.2.3 任务分析 56
3.2.4 任务实现 57
3.2.5 小结 60
3.3 舞伴问题——顺序队列 60
3.3.1 任务说明 60
3.3.2 顺序队列 61
3.3.3 任务分析 66
3.3.4 任务实现 66
3.3.5 小结 69
3.4 停车场管理问题——链队列 69
3.4.1 任务说明 69
3.4.2 链队列 70
3.4.3 任务分析 72
3.4.4 任务实现 72
3.4.5 小结 75
3.5 巩固与拓展 75
第4章 串和数组 78
4.1 文本加密器——串 78
4.1.1 任务说明 78
4.1.2 串的定义及相关术语 79
4.1.3 串的存储 79
4.1.4 串的基本操作 80
4.1.5 串的模式匹配 83
4.1.6 任务分析 87
4.1.7 任务实现 87
4.1.8 小结 89
4.2 求解n阶魔方阵——数组 90
4.2.1 任务说明 90
4.2.2 数组的基本概念 90
4.2.3 数组的顺序存储 90
4.2.4 特殊矩阵的压缩存储 91
4.2.5 任务分析 96
4.2.6 任务实现 96
4.2.7 小结 97
4.3 巩固与拓展 97
第5章 树和二叉树 100
5.1 随机生成树——树 101
5.1.1 任务说明 101
5.1.2 树的定义 101
5.1.3 树的相关术语 102
5.1.4 树的表示方法 102
5.1.5 树的存储结构 103
5.1.6 任务分析 104
5.1.7 任务实现 104
5.1.8 小结 106
5.2 哈夫曼编码器——二叉树 106
5.2.1 任务说明 107
5.2.2 二叉树的定义 107
5.2.3 二叉树的性质 109
5.2.4 二叉树的存储 110
5.2.5 二叉树的遍历 112
5.2.6 哈夫曼树及哈夫曼编码 113
5.2.7 任务分析 115
5.2.8 任务实现 116
5.2.9 小结 117
5.3 二叉树管理器——树和森林、二叉树的相互转换 117
5.3.1 任务说明 118
5.3.2 树、森林和二叉树的相互转换 118
5.3.3 树和森林的遍历 119
5.3.4 任务分析 120
5.3.5 任务实现 120
5.3.6 小结 126
5.4 巩固与拓展 126
第6章 图 129
6.1 社区超市选址——图 130
6.1.1 任务说明 130
6.1.2 图的基本概念 130
6.1.3 图的存储 131
6.1.4 图的遍历 137
6.1.5 最短路径 139
6.1.6 任务分析 142
6.1.7 任务实现 142
6.1.8 小结 143
6.2 局域网络布线——最小生成树 143
6.2.1 任务说明 143
6.2.2 最小生成树的概念 144
6.2.3 用克鲁斯卡尔算法求解最小生成树 144
6.2.4 用普里姆算法求解最小生成树 145
6.2.5 任务分析 145
6.2.6 任务实现 145
6.2.7 小结 147
6.3 教学计划的编制——拓扑排序 147
6.3.1 任务说明 147
6.3.2 拓扑排序 147
6.3.3 任务分析 148
6.3.4 任务实现 149
6.3.5 小结 151
6.4 求解工程的关键路径——关键路径 151
6.4.1 任务说明 151
6.4.2 关键路径 151
6.4.3 任务分析 153
6.4.4 任务实现 153
6.4.5 小结 160
6.5 巩固与拓展 160
第7章 查找 163
7.1 顺序查找 164
7.1.1 算法说明 164
7.1.2 算法实现 165
7.2 折半查找 166
7.2.1 算法说明 166
7.2.2 算法实现 168
7.3 二叉排序树 168
7.3.1 算法说明 168
7.3.2 算法实现 174
7.4 哈希表 175
7.4.1 算法说明 175
7.4.2 算法实现 178
7.5 学生成绩分段查找——查找算法应用 180
7.5.1 任务说明 180
7.5.2 任务分析 180
7.5.3 任务实现 180
7.5.4 小结 181
7.6 巩固与拓展 182
第8章 排序 184
8.1 直接插入排序 188
8.1.1 算法说明 188
8.1.2 算法实现 188
8.2 简单选择排序 190
8.2.1 算法说明 190
8.2.2 算法实现 190
8.3 冒泡排序 191
8.3.1 算法说明 191
8.3.2 算法实现 192
8.4 快速顺序 192
8.4.1 算法说明 192
8.4.2 算法实现 193
8.5 归并排序 194
8.5.1 算法说明 194
8.5.2 算法实现 194
8.6 学生信息按照成绩关键字排序——排序算法应用 195
8.6.1 任务说明 195
8.6.2 任务分析 195
8.6.3 任务实现 195
8.6.4 小结 199
8.7 巩固与拓展 199
参考文献 201