第1章 基本数据结构与算法 1
1.1 数据结构概述 1
1.1.1 数据结构的定义 1
1.1.2 数据结构的图形表示 2
1.1.3 线性结构与非线性结构 2
1.2 算法 3
1.2.1 算法的基本概念 3
1.2.2 算法复杂度 5
1.2.3 常用的算法 6
1.3 线性表 7
1.3.1 线性表的定义 7
1.3.2 线性表的顺序存储结构 8
1.3.3 线性表的插入运算 9
1.3.4 线性表的删除运算 10
1.4 栈和队列 10
1.4.1 栈及其运算 10
1.4.2 队列及其运算 11
1.4.3 循环队列 13
1.4.4 循环队列的基本操作 14
1.5 线性链表 15
1.5.1 线性链表的概念 15
1.5.2 线性链表的插入运算 16
1.5.3 线性链表的删除运算 17
1.5.4 循环链表及其运算 18
1.5.5 双向链表的概念 19
1.5.6 顺序表和链表的比较 21
1.6 树 22
1.6.1 树的基本概念 22
1.6.2 二叉树及其基本性质 23
1.6.3 二叉树的遍历 27
1.7 查找算法 29
1.7.1 查找的概念 29
1.7.2 顺序查找 29
1.7.3 二分法查找 30
1.8 排序算法 30
1.8.1 排序的概念 30
1.8.2 插入类排序 31
1.8.3 交换类排序 33
1.8.4 选择类排序 36
1.8.5 各种排序方法的比较 37
1.8.6 例题分析 38
1.8.7 数据结构与算法练习题 52
第2章 程序设计基础 56
2.1 程序设计方法与风格 56
2.1.1 程序设计风格 56
2.2 结构化程序设计 57
2.2.1 结构化程序设计的原则 58
2.2.2 结构化程序的基本结构与特点 58
2.2.3 结构化程序设计原则和方法的应用 59
2.3 面向对象的程序设计 59
2.3.1 关于面向对象的方法 59
2.3.2 面向对象方法中常用基本概念 61
2.4 程序设计基础习题 62
第3章 软件工程基础 66
3.1 软件工程基本概念 66
3.1.1 软件定义与软件特点 66
3.1.2 软件危机与软件工程 67
3.1.3 软件工程过程与软件生命周期 68
3.1.4 软件开发工具与软件开发环境 72
3.2 软件需求分析 73
3.2.1 结构化分析方法 73
3.2.2 结构化分析的常用工具 73
3.2.3 软件需求规格说明书 75
3.3 软件设计 76
3.3.1 软件设计基础 76
3.3.2 软件设计的基本原理 76
3.3.3 概要设计 77
3.3.4 详细设计 80
3.4 软件测试 82
3.4.1 软件测试的目的 82
3.4.2 软件测试的原则 82
3.4.3 软件测试技术与方法 82
3.5 程序的调试 86
3.5.1 程序调试的基本概念 86
3.5.2 软件调试方法 87
3.6 练习题 87
第4章 数据库设计基础 89
4.1 数据的基本概念 89
4.1.1 数据、数据库、数据库管理系统 89
4.1.2 数据库系统的发展 91
4.1.3 数据库系统的基本特点 92
4.2 数据模型 93
4.2.1 数据模型的基本概念 93
4.2.2 E—R模型 94
4.2.3 基本数据模型 96
4.3 关系代数 97
4.4 关系数据库的数据体系结构 105
4.5 关系模型的完整规则 106
4.6 关系数据库规范化理论 107
4.7 数据库设计与管理 108
4.7.1 数据库设计的内容 108
4.7.2 数据库设计的需求分析 108
4.7.3 数据库概念设计 109
4.7.4 数据库的逻辑设计 110
4.7.5 数据库的物理设计 111
4.7.6 数据库管理 111
4.8 习题部分 112
第5章 模拟试题部分 118