第1章 概述 1
1.1 数据结构课程的基本概念 1
1.2 抽象数据类型 3
1.3 算法和算法的时间复杂度 4
1.4 算法设计 8
1.5 算法书写规范 12
1.6 上机实习内容规范 12
第2章 顺序存储结构的表、堆栈和队列2.1 学习指导 14
2.1.1 线性表 14
2.1.2 顺序存储结构 14
2.1.3 顺序表 15
2.1.4 堆栈和顺序堆栈 18
2.1.5 队列和顺序循环队列 20
2.1.6 进一步的分析讨论 23
2.2 典型题解 24
2.2.1 顺序表及其应用 24
2.2.2 堆栈、顺序堆栈及其应用 31
2.2.3 顺序循环队列及其应用 34
2.2.4 顺序双向循环队列及其应用 37
2.2.5 顺序优先级队列及其应用 39
2.3 上机实习典型题解 40
第3章 链式存储结构的表、堆栈和队列3.1 学习指导 43
3.1.1 链式存储结构 43
3.1.2 单链表、单循环链表和双向循环链表 44
3.1.3 链式堆栈 50
3.1.4 链式队列 51
3.1.5 静态链表 54
3.1.6 进一步的分析讨论 54
3.2 典型题解 55
3.2.1 带头结点和不带头结点的单链表及其应用 55
3.2.2 链式堆栈及其应用 63
3.2.3 尾指针表示的单循环链表及其应用 65
3.2.4 尾指针表示的链式队列及其应用 66
3.3 上机实习典型题解 68
第4章 串、数组和矩阵 76
4.1 学习指导 76
4.1.1 串的定义、存储结构和操作 76
4.1.2 数组的定义和操作 83
4.1.3 矩阵的压缩存储 84
4.2 典型题解 86
4.2.1 串的基本概念和应用问题 86
4.2.2 数组的基本概念和应用问题 91
4.2.3 特殊矩阵和稀疏矩阵的基本概念和应用问题 92
4.3 上机实习典型题解 100
第5章 递归程序设计 105
5.1 学习指导 105
5.1.1 递推定义式 105
5.1.2 递归算法的执行过程 105
5.1.3 递归算法的设计 106
5.1.4 递归算法的效率分析 107
5.1.5 递归算法到非递归算法的转换 109
5.2 典型题解 110
5.2.1 基本的递归概念和递归算法执行过程 110
5.2.2 复杂的递归概念和应用问题 114
5.3 上机实习典型题解 122
第6章 广义表 126
6.1 学习指导 126
6.1.1 广义表的基本概念 126
6.1.2 广义表的存储结构 127
6.1.3 广义表的操作实现 128
6.2 典型题解 133
6.2.1 基本概念题 133
6.2.2 算法设计题 135
第7章 树与二叉树 142
7.1 学习指导 142
7.1.1 树的概念及有关术语 142
7.1.2 二叉树 143
7.1.3 树与森林 147
7.1.4 哈夫曼树及其应用 149
7.1.5 小结 150
7.2 典型题解 151
7.2.1 基本内容题 151
7.2.2 算法设计与分析题 158
7.3 上机实习典型题解 173
第8章 图 178
8.1 学习指导 178
8.1.1 图的概念 178
8.1.2 图的存储结构 179
8.1.3 图的遍历 181
8.1.4 图的应用 183
8.1.5 小结 187
8.2 典型题解 188
8.2.1 基本内容题 188
8.2.2 算法设计与分析题 194
8.3 上机实习典型题解 208
第9章 内部排序 213
9.1 学习指导 213
9.1.1 排序的基本概念 213
9.1.2 插入排序 214
9.1.3 交换排序 215
9.1.4 选择排序 217
9.1.5 归并排序 220
9.1.6 基数排序 221
9.1.7 小结 222
9.2 典型题解 223
9.2.1 基本内容题 223
9.2.2 算法设计与分析题 229
9.3 上机实习典型题解 242
第10章 查找 248
10.1 学习指导 248
10.1.1 查找的基本概念 248
10.1.2 线性表的查找 248
10.1.3 树型表的查找 251
10.1.4 哈希表及其查找 253
10.1.5 本章小结 255
10.2 典型题解 256
10.2.1 线性表查找题解 256
10.2.2 树型表查找题解 256
10.2.3 哈希表查找题解 265
10.3 上机实习典型题解 268
附录 典型试题和解答 273
附录1 试题一及解答 273
附录2 试题二及解答 277
附录3 试题三及解答 283
附录4 自测试卷一 289
附录5 自测试卷二 291