第1章 数据结构与算法 1
1.1 算法 3
1.1.1 什么是算法 3
1.1.2 算法复杂度 5
1.2 数据结构的基本概念 7
1.2.1 什么是数据结构 7
1.2.2 数据结构的图形表示 10
1.2.3 线性结构与非线性结构 10
1.3 线性表及其顺序存储结构 11
1.3.1 线性表的基本概念 11
1.3.2 线性表的顺序存储结构 12
1.3.3 线性表的插入运算 13
1.3.4 线性表的删除运算 14
1.4 栈和队列 15
1.4.1 栈及其基本运算 15
1.4.2 队列及其基本运算 17
1.5 线性链表 19
1.5.1 线性链表的基本概念 19
1.5.2 线性链表的基本运算 21
1.5.3 循环链表及其基本运算 23
1.6 树与二叉树 23
1.6.1 树的基本概念 24
1.6.2 二叉树及其基本性质 25
1.6.3 二叉树的存储结构 28
1.6.4 二叉树的遍历 28
1.7 查找技术 29
1.7.1 顺序查找 30
1.7.2 二分法查找 30
1.8 排序技术 31
1.8.1 交换类排序法 31
1.8.2 插入类排序法 33
1.8.3 选择类排序法 35
1.8.4 排序方法比较 37
课后总复习 37
第2章 程序设计基础 41
2.1 程序设计方法与风格 43
2.2 结构化程序设计 44
2.2.1 结构化程序设计方法的重要原则 45
2.2.2 结构化程序的基本结构与特点 45
2.2.3 结构化程序设计的注意事项 47
2.3 面向对象的程序设计 48
2.3.1 面向对象方法的基本概念 48
2.3.2 面向对象方法的优点 51
课后总复习 52
第3章 软件工程基础 54
3.1 软件工程基本概念 56
3.1.1 软件的定义及软件的特点 56
3.1.2 软件危机 57
3.1.3 软件工程 58
3.1.4 软件工程过程 59
3.1.5 软件生命周期 60
3.1.6 软件开发工具与开发环境 60
3.2 结构化分析方法 61
3.2.1 需求分析 61
3.2.2 需求分析方法 62
3.2.3 结构化分析方法的常用工具 62
3.2.4 软件需求规格说明书 64
3.3 结构化设计方法 64
3.3.1 软件设计概述 64
3.3.2 概要设计 66
3.3.3 详细设计 69
3.4 软件测试 71
3.4.1 软件测试的目的和准则 71
3.4.2 软件测试方法 72
3.4.3 白盒测试的测试用例设计 72
3.4.4 黑盒测试的测试用例设计 75
3.4.5 软件测试的实施 76
3.5 程序的调试 77
3.5.1 程序调试的基本概念 77
3.5.2 软件调试方法 78
课后总复习 79
第4章 数据库设计基础 82
4.1 数据库系统的基本概念 84
4.1.1 数据库、数据库管理系统、数据库系统 84
4.1.2 数据库技术的发展 87
4.1.3 数据库系统的基本特点 88
4.1.4 数据库系统体系结构 89
4.2 数据模型 90
4.2.1 数据模型的基本概念 90
4.2.2 E-R模型 91
4.2.3 层次模型 94
4.2.4 网状模型 95
4.2.5 关系模型 95
4.3 关系代数 98
4.3.1 关系代数的基本运算 98
4.3.2 关系代数的扩充运算 99
4.3.3 关系代数的应用实例 102
4.4 数据库设计与管理 102
4.4.1 数据库设计概述 103
4.4.2 需求分析 103
4.4.3 概念设计 104
4.4.4 逻辑设计 106
4.4.5 物理设计 107
4.4.6 数据库管理 107
课后总复习 108
附录 111
附录A 全国计算机等级考试二级公共基础知识考试大纲 111
附录B 参考答案 112