第1章 程序设计基本原理 1
1.1 算法 1
1.1.1 算法的概念 1
1.1.2 算法的特性 2
1.1.3 算法的分析 2
1.2 算法描述工具 4
1.2.1 程序流程图 4
1.2.2 N-S流程图 7
1.3 模块 8
1.3.1 内聚度 9
1.3.2 耦合度 10
1.3.3 局部化和信息隐藏 11
练习题 12
第2章 结构化程序设计 13
2.1 结构化程序设计概述 13
2.1.1 程序设计的发展过程 13
2.1.2 结构化程序设计思想 13
2.2 结构化程序设计方法 18
2.2.1 模块化程序设计方法 18
2.2.2 自顶向下、逐步求精的方法 20
2.3 结构化程序设计实例 22
练习题 24
第3章 程序的风格 25
3.1 变量的命名 26
3.2 程序的注释 27
3.3 布局 29
3.4 表达式和语句 31
3.5 程序设计风格实例 33
练习题 34
第4章 常用算法 35
4.1 穷举算法 36
4.2 递推算法 38
4.3 递归算法 40
4.4 算法实例 44
练习题 47
第5章 应用数据结构 48
5.1 数据结构的基本概念 48
5.1.1 什么是数据结构 48
5.1.2 数据结构的常用术语 49
5.2 线性表 50
5.2.1 线性表的概念 50
5.2.2 线性表的顺序存储 51
5.2.3 线性表的链式存储 53
5.2.4 顺序表和链表的比较 60
5.2.5 线性表应用实例 60
5.3 栈和队列 68
5.3.1 栈 68
5.3.2 栈的应用实例 72
5.3.3 队列 74
5.3.4 队列的应用实例 80
5.4 串 83
5.4.1 串及其运算 83
5.4.2 串的存储结构 85
5.4.3 串运算的实现 86
5.5 多维数组和广义表 88
5.5.1 多维数组 88
5.5.2 数组的顺序表示 89
5.5.3 矩阵的压缩存储 89
5.5.4 广义表 95
5.6 树 97
5.6.1 树 97
5.6.2 二叉树 98
5.6.3 二叉树的遍历 102
5.6.4 树和森林 104
5.6.5 哈夫曼树及其应用 108
5.6.6 树的应用实例 113
5.7 图 117
5.7.1 图的概念 117
5.7.2 图的存储结构 119
5.7.3 图的遍历 122
5.7.4 生成树和最小生成树 124
5.7.5 最短路径 126
5.8 查找 128
5.8.1 基本概念 128
5.8.2 线性表的查找 129
5.8.3 二叉排序树 133
5.9 排序 135
5.9.1 基本概念 135
5.9.2 直接插入排序 136
5.9.3 交换排序 138
5.9.4 选择排序 142
5.9.5 归并排序 147
练习题 148
第6章 程序的测试 151
6.1 软件工程概述 151
6.1.1 什么是软件工程 151
6.1.2 软件生存周期 152
6.2 测试的概念 154
6.2.1 什么是程序测试 154
6.2.2 程序测试的原则 154
6.3 测试用例设计 155
6.3.1 白盒测试 155
6.3.2 黑盒测试 158
6.3.3 综合测试策略 161
6.4 程序测试的步骤 161
6.4.1 单元测试 161
6.4.2 集成测试 162
6.4.3 确认测试 162
6.4.4 系统测试 163
6.5 程序测试的方式 163
6.6 测试实例分析 164
练习题 166
第7章 实训 167
实训1 算法描述 167
实训2 结构化程序设计 168
实训3 程序设计的风格 169
实训4 常用算法 170
实训5 线性表 171
实训6 栈和队列 173
实训7 串 173
实训8 树 174
实训9 图 175
实训10 排序与查找 175
实训11 测试 176