第1章 绪论 1
1.1 基础知识篇 1
1.1.1 基本概念和术语 1
1.1.2 数据的逻辑结构 2
1.1.3 数据的存储结构 2
1.1.4 算法的描述 2
1.2 实训篇 3
1.2.1 实训步骤 3
1.2.2 C语言环境中的动态调试法 4
1.2.3 常用的调试途径 5
1.2.4 实训报告的内容与书写格式 6
1.3 习题解析 6
第2章 线性表 10
2.1 基础知识篇 10
2.1.1 基本概念 10
2.1.2 线性表的顺序存储及运算实现 11
2.1.3 线性表的链式存储及运算实现 14
2.1.4 顺序表和链表的比较 17
2.2 实训篇 18
2.2.1 超市密码存储箱系统的设计与实现 18
2.2.2 员工通讯录管理系统 25
2.2.3 约瑟夫环问题 32
2.2.4 模拟蜗牛爬树 35
2.3 实训项目 40
2.4 基本题 41
2.4.1 选择题 41
2.4.2 填空题 41
2.5 习题解析 44
第3章 栈和队列 54
3.1 基础知识篇 54
3.1.1 栈 54
3.1.2 队列 59
3.2 实训篇 65
3.2.1 栈的应用——表达式求值问题 66
3.2.2 队列的应用——迷宫问题 71
3.3 实训项目 75
3.4 基本题 76
3.4.1 选择题 76
3.4.2 填空题 76
3.5 习题解析 78
第4章 串 86
4.1 基础知识篇 86
4.1.1 串及其存储结构 86
4.1.2 串的基本运算 89
4.2 实训篇 92
4.3 实训项目 94
4.4 基本题 95
4.4.1 选择题 95
4.4.2 填空题 95
4.5 习题解析 96
第5章 树 102
5.1 基础知识篇 102
5.1.1 树的基本概念 102
5.1.2 二叉树 102
5.1.3 树的存储结构 106
5.1.4 哈夫曼树 107
5.2 实训篇 108
5.2.1 二叉树的建立及三种遍历的实现 108
5.2.2 哈夫曼编码/译码系统 116
5.2.3 六皇后问题求解及演示 122
5.3 实训项目 125
5.4 基本题 125
5.4.1 选择题 125
5.4.2 填空题 126
5.5 习题解析 127
第6章 图 140
6.1 基础知识篇 140
6.1.1 图的基本概念 140
6.1.2 图的存储结构 143
6.1.3 图的基本操作 145
6.2 实训篇 153
6.2.1 图的遍历问题 154
6.2.2 所有顶点对最短路径问题 156
6.3 实训项目 160
6.4 基本题 161
6.4.1 选择题 161
6.4.2 填空题 163
6.5 习题解析 164
第7章 查找 170
7.1 基础知识篇 170
7.1.1 基本概念 170
7.1.2 静态查找 170
7.1.3 动态查找 172
7.2 实训篇 175
7.2.1 手机短信内容中电话号码和手机号码的识别与提取 176
7.2.2 数据结构教材中各功能函数的存放与查找 180
7.2.3 二叉排序树的使用 184
7.3 实训项目 188
7.4 基本题 188
7.4.1 选择题 188
7.4.2 填空题 189
7.5 习题解析 190
第8章 排序 199
8.1 基础知识篇 199
8.1.1 排序的基本概念 199
8.1.2 插入排序 200
8.1.3 交换排序 201
8.1.4 选择排序 202
8.1.5 归并排序 204
8.1.6 基数排序 204
8.1.7 内部排序法的比较和选择 205
8.2 实训篇 205
8.2.1 药店的药品销售统计系统 205
8.2.2 学生成绩排名 214
8.2.3 电视大赛观众投票及排名系统 218
8.3 实训项目 221
8.4 基本题 222
8.4.1 选择题 222
8.4.2 填空题 222
8.5 习题解析 223
附录 基本题参考答案 232
参考文献 235