项目一 数据结构导论 1
任务一 数据结构入门 1
一、基本术语 2
二、数据的逻辑结构 3
三、数据的存储结构 3
四、数据类型 4
任务二 算法与算法分析 6
一、算法的概念 6
二、算法的特性 6
三、算法的描述方法 6
四、算法设计的要求 8
五、算法性能分析 9
六、类C语言简介 9
项目小结 9
习题与上机操作 10
项目二 线性表 11
任务一 线性表的定义和基本操作 11
一、线性表的定义 11
二、线性表的基本操作 12
任务二 线性表的顺序存储结构 13
一、顺序表的结构特点 13
二、顺序表的基本操作 14
任务三 线性表的链式存储结构 18
一、单链表的结构特点 18
二、单链表的基本操作 20
三、静态链表及其基本操作 26
四、循环链表及其基本操作 28
五、双向链表及其基本操作 29
项目小结 31
习题与上机操作 31
项目三 栈和队列 33
任务一 栈的定义、存储结构和基本操作 33
一、栈的定义及其基本操作 33
二、树、森林和二叉树的转换 96
三、树和森林的遍历 99
任务四 哈夫曼树及其应用 100
一、哈夫曼树的定义 100
二、哈夫曼树的构造 101
三、哈夫曼树编码 102
项目小结 103
习题与上机操作 103
项目六 图 105
任务一 图的定义和基本操作 105
一、图的定义 105
二、图的基本术语 106
三、图的基本操作 108
任务二 图的存储结构 109
一、邻接矩阵表示法 109
二、邻接表表示法 111
三、十字链表表示法 113
四、邻接多重表表示法 115
任务三 图的遍历 117
一、深度优先遍历 117
二、广度优先遍历 119
任务四 图的应用 120
一、生成树和最小生成树 120
二、最短路径 124
三、拓扑排序 126
四、关键路径 130
项目小结 134
习题与上机操作 134
项目七 查找 137
任务一 查找的相关术语 137
任务二 静态查找表 138
一、顺序查找 139
二、折半查找 140
三、索引顺序查找 144
任务三 动态查找表 146
一、二叉排序树 146
二、平衡二叉树 155
任务四 哈希查找 165
一、哈希表的基本概念 165
二、构造哈希函数的方法 166
三、处理冲突的方法 169
四、哈希表的查找及分析 172
项目小结 174
习题与上机操作 174
项目八 排序 177
任务一 排序的相关概念 177
任务二 插入排序 179
一、直接插入排序 179
二、折半插入排序 181
三、希尔排序 182
任务三 交换排序 184
一、冒泡排序 184
二、快速排序 186
任务四 选择排序 189
一、直接选择排序 189
二、树形选择排序 190
三、堆排序 192
任务五 归并排序和基数排序 197
一、归并排序 197
二、基数排序 199
项目小结 204
习题与上机操作 204