.1.2栈和队列104
3.1.3串108
3.2数组、矩阵和广义表113
3.2.1数组113
3.2.2矩阵115
3.2.3广义表116
3.3树118
3.3.1树与二叉树的定义118
3.3.2二叉树的性质与存储结构119
3.3.3二叉树的遍历122
3.3.4线索二叉树125
3.3.5最优二叉树126
3.3.6树和森林130
3.4图133
3.4.1图的定义与存储134
3.4.2图的遍历138
3.4.3生成树及最小生成树140
3.4.4拓扑排序和关键路径143
3.4.5最短路径146
3.5查找149
3.5.1查找的基本概念149
3.5.2静态查找表的查找方法150
3.5.3动态查找表154
3.5.4哈希表161
3.6排序165
3.6.1排序的基本概念165
3.6.2简单排序165
3.6.3希尔排序168
3.6.4快速排序169
3.6.5堆排序170
3.6.6归并排序173
3.6.7基数排序174
3.6.8内部排序方法小结175
3.6.9外部排序176
第4章操作系统知识180
4.1操作系统概述180
4.1.1操作系统的基本概念180
4.1.2操作系统分类及特点181
4.1.3操作系统的发展185
4.2进程管理185
4.2.1基本概念185
4.2.2进程的控制189
4.2.3进程间的通信189
4.2.4管程193
4.2.5进程调度195
4.2.6死锁198
4.2.7线程202
4.3存储管理202
4.3.1基本概念203
4.3.2存储管理方案204
4.3.3分页存储管理205
4.3.4分段存储管理208
4.3.5段页式存储管理209
4.3.6虚拟存储管理211
4.4设备管理216
4.4.1设备管理概述216
4.4.2I/O软件217
4.4.3设备管理采用的相关技术218
4.4.4磁盘调度221
4.5文件管理224
4.5.1文件与文件系统224
4.5.2文件的结构和组织225
4.5.3文件目录227
4.5.4存取方法和存储空间的管理229
4.5.5文件的使用231
4.5.6文件的共享和保护231
4.5.7系统的安全与可靠性233
4.6作业管理234
4.6.1作业与作业控制235
4.6.2作业调度236
4.6.3用户界面238
第5章软件工程基础知识239
5.1软件工程概述239
5.1.1计算机软件240
5.1.2软件工程基本原理241
5.1.3软件生存周期243
5.1.4软件过程245
5.2软件过程模型247
5.2.1瀑布模型(WaterfallModel)248
5.2.2增量模型(Incremental
Model)249
5.2.3演化模型(Evolutionary
Model)250
5.2.4喷泉模型
(WaterFountainModel)252
5.2.5基于构件的开发模型
(Component-based
DevelopmentModel)252
5.2.6形式化方法模型(Formal
MethodsModel)253
5.2.7统一过程(UP)模型253
5.2.8敏捷方法(Agile
Development)254
5.3需求分析256
5.3.1软件需求256
5.3.2需求分析原则257
5.3.3需求工程257
5.4系统设计260
5.4.1概要设计261
5.4.2详细设计262
5.5系统测试262
5.5.1系统测试与调试262
5.5.2传统软件的测试策略264
5.5.3测试面向对象软件271
5.5.4测试Web应用272
5.5.5测试方法273
5.5.6调试276
5.6运行和维护知识278
5.6.1系统转换278
5.6.2系统维护概述279
5.6.3系统评价283
5.7软件项目管理284
5.7.1软件项目管理涉及的范围284
5.7.2软件项目估算287
5.7.3进度管理289
5.7.4软件项目的组织292
5.7.5软件配置管理294
5.7.6风险管理296
5.8软件质量300
5.8.1软件质量特性300
5.8.2软件质量保证302
5.8.3软件评审304
5.8.4软件容错技术306
5.9软件度量307
5.9.1软件度量分类307
5.9.2软件复杂性度量309
5.10软件工具与软件开发环境311
5.10.1软件工具311
5.10.2软件开发环境313