第 1 部分 数据结构
第 1 章 数据结构概述 2
11 数据结构的基本概念 2
111 什么是数据结构 2
112 基本概念与术语 2
12 数据结构的内容 4
121 数据的逻辑结构 4
122 数据的物理结构 6
123 数据的运算 7
13 算法基础 8
131 算法的概念 8
132 算法的特性 8
133 算法的评价 9
134 算法的复杂度 9
14 如何学习和运用数据结构与算法 12
15 习题 12
第 1 篇 线性结构
第 2 章 线性表 16
21 实例引入 16
211 合并两个有序线性表 16
212 一元多项式的运算 16
213 约瑟夫环问题 16
214 简单的管理系统 17
22 线性表的概念与基本操作 17
221 线性表的概念 17
222 线性表的基本操作 17
23 线性表的顺序存储及运算 18
231 顺序表 18
232 顺序表的基本运算 18
24 线性表的链式存储及运算 24
241 单链表 24
242 循环链表 30
243 双向链表 30
244 静态链表 32
25 顺序表与链表的比较 33
26 线性表的典型应用 33
261 应用实例一:合并有序线性表 33
262 应用实例二:一元多项式的运算 33
263 应用实例三:约瑟夫环问题 37
264 应用实例四:超市商品管理系统 38
27 航空航天应用实例分析与实现 39
271 航空售票系统 39
272 系统订购机票 41
273 系统增加航线 42
274 系统删除航线 42
275 系统退票 43
28 习题 43
第3 章 栈与队列 46
31 实例引入 46
32 栈 47
321 栈的概念与基本运算 47
322 栈的顺序存储 48
323 栈的链式存储 51
324 栈的典型应用 54
33 队列 56
331 队列的概念与基本运算 56
332 队列的存储 56
333 队列的典型应用 61
34 航空航天应用实例分析与实现 62
35 习题 64
第4 章 串 68
41 实例引入 68
42 串的概念及基本运算 68
421 串的概念 68
422 串的基本运算 69
43 串的顺序存储结构与运算 69
431 串的定长顺序存储与运算 69
432 串的堆存储与运算 71
44 串的链式存储结构与运算 72
441 块链串 72
442 块链串的运算 73
45 串的模式匹配 74
451 BF 算法 74
452 KMP 算法 75
46 航空航天应用实例分析与实现 76
47 习题 77
第5 章 数组和广义表 80
51 实例引入 80
52 数组 80
521 数组的定义 80
522 数组的顺序存储 81
53 矩阵的压缩存储 82
531 特殊矩阵的压缩存储 82
532 稀疏矩阵的压缩存储 85
54 广义表 85
541 广义表的概念与存储 85
542 广义表的基本操作 88
55 航空航天应用实例分析与实现 91
56 习题 92
第 2 篇 树形结构
第6 章 树 96
61 实例引入 96
611 数据编码压缩问题 96
612 树与等价类划分问题 96
613 表达式的树形表示及求值 96
614 N 皇后问题 97
62 树的相关概念 97
621 树的定义与表示 97
622 树的基本术语 97
623 树的基本操作 98
63 二叉树的定义、性质和存储 99
631 二叉树的定义和性质 99
632 二叉树的存储 102
64 二叉树的遍历与应用 104
641 二叉树的遍历 104
642 二叉树遍历的应用 107
65 线索二叉树 111
651 线索二叉树的基本概念 111
652 二叉树的线索化 112
653 线索二叉树的遍历 113
66 树和森林 114
661 树的表示与存储 114
662 树、森林与二叉树的转换 116
663 树和森林的遍历 118
67 哈夫曼树及应用 118
671 哈夫曼树 119
672 哈夫曼编译码 122
68 航空航天应用实例分析与实现 124
69 习题 125
第3 篇 图状结构
第7 章 图 130
71 实例引入 130
711 城市交通问题 130
712 工程问题 131
72 图的相关概念 131
721 图的概念 131
722 图的基本操作 132
73 图的存储表示 133
731 邻接矩阵表示法 133
732 邻接表表示法 137
733 十字链表表示法 140
734 多重链表表示法 141
74 图的遍历 142
741 图的深度优先搜索遍历 142
742 图的广度优先搜索遍历 143
75 图的典型应用 144
751 最小生成树 144
752 最短路径 148
753 拓扑排序 151
754 关键路径 153
76 航空航天应用实例分析与实现 154
761 航空飞行线路规划系统的结构体类型 154
762 航空飞行线路规划系统实现 155
77 习题 156
第4 篇 查找与排序
第8 章 查找 162
81 查找的相关概念 162
82 静态查找 163
821 顺序查找 163
822 折半查找 164
823 分块查找 166
83 动态查找 168
831 基于二叉树的查找 168
832 基于B 树的查找 177
84 哈希表查找 182
841 哈希表的定义 182
842 哈希函数的构造方法 183
843 处理冲突的方法 184
844 哈希表查找 187
845 哈希表的查找分析 189
85 航空航天应用实例分析与实现 189
851 航空售票系统查询航班 189
852 航空售票系统查询订单 190
853 航空售票系统查询航班候补乘客订单 191
86 习题 191
第9 章 排序 196
91 排序的相关概念 196
911 排序方法的稳定性 196
912 排序方法的分类 196
92 插入类排序 198
921 直接插入排序 198
922 折半插入排序 200
923 希尔排序 201
93 交换类排序 202
931 冒泡排序 202
932 快速排序 204
94 选择类排序 205
941 简单选择排序 205
942 树形选择排序 207
943 堆排序 207
95 归并类排序 211
96 分配类排序 212
961 多关键字排序 212
962 链式基数排序 213
97 外部排序 215
971 外部排序概述 215
972 置换选择排序 216
973 多路归并外排序 219
98 航空航天应用实例分析与实现 221
99 习题 222
第 2 部分 算法设计
第 10 章 算法设计方法 226
101 算法概述 226
1011 算法概念与表示 226
1012 算法的描述 226
1013 表达算法的抽象机制 228
1014 算法复杂性分析 228
102 递归与分治 232
1021 递归的概念与原理 233
1022 分治法的基本思想 235
1023 分治法的典型应用 236
103 动态规划 240
1031 问题引入 241
1032 动态规划算法的基本要素与基本步骤 241
1033 动态规划算法的典型应用举例 242
104 贪心算法 253
1041 问题引入 253
1042 贪心算法的基本要素与特点 253
1043 贪心算法的典型应用 254
105 回溯法 259
1051 问题引入 259
1052 回溯法的算法框架 259
1053 回溯法的典型应用 264
1054 小结 268
106 分支限界法 268
1061 问题引入 268
1062 分支限界法的基本思想 268
1063 分支限界法的典型应用 273
107 算法设计策略比较 283
108 航空航天应用案例分析与算法设计 284
1081 飞行规划案例 284
1082 飞机维修次序案例 286
1083 航运装载案例 286
109 习题 288
参考文献 292