第一章 概论
1.1 计算机软件及其发展
1.1.1 程序设计语言的发展
1.1.2 操作系统的形成和发展
1.1.3 程序的一般结构
1.2 算法和数据结构概述
1.2.1 问题的求解过程
1.2.2 数据结构和算法的概念
1.2.3 算法评价方法
习题一
第二章 C语言基础
2.1 C语言概述
2.1.1 C语言发展简史
2.1.2 C语言的特点
2.1.3 C程序的基本结构
2.1.4 保留字和标识符
2.1.5 常量和变量
2.2 基本数据类型
2.2.1 整型数据
2.2.2 实型数据
2.2.3 字符型数据
2.2.4 长整型、短整型和无符号整型
2.3 运算符和表达式
2.3.1 基本算术运算符及其运算规则
2.3.2 赋值运算符和赋值表达式
2.3.3 逗号运算符和逗号表达式
2.4 Turbo C2.0环境下C程序的上机操作方法
2.4.1 C程序运行经历的过程
2.4.2 程序的上机操作步骤
习题二
第三章 基本C程序设计
3.1 赋值语句和基本输入输出
3.1.1 赋值语句
3.1.2 getchar()函数和putchar()函数
3.1.3 格式输出函数printf()
3.1.4 格式输入函数scanf()
3.2 分支程序设计
3.2.1 关系运算符和关系表达式
3.2.2 逻辑运算符和逻辑表达式
3.2.3 if语句
3.2.4 switch语句
3.2.5 应用举例
3.3 循环程序设计
3.3.1 while语句
3.3.2 do-while语句
3.3.3 for语句
3.3.4 多重循环
3.3.5 break语句和continue语句
3.3.6 goto语句和空语句
习题三
第四章 数组和指针类型
4.1 一维数组
4.1.1 定义方式和引用方式
4.1.2 应用举例
4.2 二维数组
4.2.1 定义方式和引用方式
4.2.2 应用举例
4.3 字符数组
4.3.1 定义方式和引用方式
4.3.2 字符串及其结束标志
4.3.3 字符串的输入和输出
4.3.4 常用字符串处理函数
4.3.5 应用举例
4.4 指针
4.4.1 指针的基本概念
4.4.2 指针变量的定义和引用
4.4.3 指向数组的指针
4.4.4 指向字符串的指针
4.4.5 指针数组
习题四
第五章 函数和编译预处理
5.1 函数的定义和调用
5.1.1 函数定义的一般形式
5.1.2 函数调用方式
5.1.3 函数的返回值
5.2 函数的嵌套调用与递归调用
5.2.1 函数的嵌套调用
5.2.2 函数的递归调用
5.3 数组和指针变量作函数参数
5.3.1 数组作为函数参数
5.3.2 指针变量作为函数参数
5.4 变量的存储类型及其作用域
5.4.1 局部变量及其存储类型
5.4.2 全局变量及其存储类型
5.4.3 内部函数和外部函数
5.5 编译预处理
5.5.1 宏定义
5.5.2 文件包含处理
习题五
第六章 文件
6.1 C文件概述
6.2 文件类型指针
6.3 文件的打开与关闭
6.3.1 文件的打开(fopen函数)
6.3.2 文件的关闭(fclose函数)
6.4 文件的读写和定位
6.4.1 文件的读函数
6.4.2 文件的写函数
6.4.3 文件的定位函数
习题六
第七章 表结构的算法设计
7.1 顺序存储的表结构
7.1.1 表结构及存储方法
7.1.2 表结构的插入和删除
7.1.3 表结构的查找
7.2 栈和队结构
7.2.1 栈和队的运算
7.2.2 栈的应用
7.3 结构类型和链表
7.3.1 结构类型
7.3.2 链表的定义和种类
7.3.3 链表的结点和简单链操作
7.3.4 链表的构造和输出
7.4 链表的运算
7.4.1 链表的查找
7.4.2 链表的插入
7.4.3 链表的删除
7.4.4 双向链表
7.5 静态链表
7.5.1 静态链表的定义
7.5.2 静态链表的插入和删除
7.6 散列表
7.6.1 散列函数
7.6.2 散列表的构造
习题七
第八章 树结构和图结构的算法设计
8.1 树的概念
8.1.1 树的有关术语
8.1.2 二叉树
8.1.3 树、森林和二叉树的相互转换
8.2 二叉树的遍历
8.2.1 二叉树的遍历运算
8.2.2 二叉树遍历序列的性质
8.2.3 二叉树遍历的应用
8.3 二叉树的构造
8.4 检索树
8.4.1 检索树的概念和查找算法
8.4.2 检索树的插入和构造
8.4.3 检索树的删除
8.5 平衡树
8.5.1 平衡树的插入
8.5.2 平衡树的删除
8.6 哈夫曼树
8.6.1 哈夫曼算法
8.6.2 哈夫曼树的应用
8.7 图的概念和存储方法
8.7.1 图的有关术语
8.7.2 图的存储方法
8.8 先深搜索和先广搜索
8.8.1 先深搜索和先深生成林
8.8.2 先广搜索
8.9 最小生成树
8.9.1 Kruscal算法
8.9.2 Prim算法
8.10 最短路径问题
习题八
第九章 算法设计常用方法
9.1 递归和分治
9.1.1 递归
9.1.2 分治法
9.1.3 平衡原则
9.2 贪心法
9.3 动态规划
9.4 回朔法
9.5 面向对象的程序设计方法
9.5.1 面向对象的基本概念
9.5.2 C++中面向对象的用法简介
习题九
第十章 软件工程概述
10.1 软件工程的概念
10.1.1 软件工程的产生
10.1.2 软件工程的体系
10.2 软件工程开发模式
10.2.1 瀑布模型
10.2.2 原型开发模型
10.2.3 螺旋模型
10.2.4 喷泉模型
10.2.5 混合模型
10.2.6 Petri网模型
10.3 软件开发过程
10.3.1 开发过程的度量
10.3.2 软件开发过程的阶段
10.4 计算机辅助软件工程CASE
10.5 统一建模语言UML
10.5.1 UML的组成
10.5.2 UML的使用
习题十
参考文献