第1章 机器语言模式 1
1.1 模拟机器指令集与程序设计举例 1
1.2 机器语言的局限性 8
问题与练习 9
第2章 C语言模式 10
2.1 基于基本类型的编程模式 11
2.2 对操作符的扩充——函数 17
2.3 函数原型和函数定义 21
2.4 代码抽象 23
2.5 对基本类型的扩充——数组和指针 23
2.5.1 数组 23
2.5.2 指针 25
2.5.3 数组和指针的深入讨论 28
2.5.4 选择排序 32
2.5.5 顺序搜索和二分搜索 35
2.5.6 值传递和指针传递 38
2.5.7 const型指针 40
2.5.8 动态数组及其应用 43
问题与练习 47
第3章 顺序表 48
3.1 数组的局限性 48
3.2 结构体 50
3.3 顺序表的声明与实现 53
3.3.1 顺序表声明 53
3.3.2 顺序表的实现 57
3.4 数据抽象和封装 62
问题与练习 63
第4章 从C到C++ 64
4.1 C语言固有局限性 64
4.2 内联函数 67
4.3 操作符重载和函数重载 68
4.3.1 操作符重载 69
4.3.2 函数重载 70
4.4 引用型 73
4.4.1 概念的由来 73
4.4.2 引用型及其应用 77
4.5 函数模板 79
4.6 提取符和插入符 81
4.7 默认参数 84
问题与练习 85
第5章 顺序表类 86
5.1 从C顺序表到C++顺序表类 86
5.2 变量和对象 92
5.3 new和delete操作符 94
5.4 需要增加的成员函数 95
5.5 顺序表类的声明和实现 99
5.6 类和类模板 102
5.7 基本类型的赋值形式扩展 107
问题与练习 108
第6章 非线性结构与递归 109
6.1 树形结构与递归 109
6.2 C++递归函数 114
6.3 汉诺塔问题 116
6.4 快速排序 119
6.5 八皇后 122
问题与练习 127
第7章 数据库 128
7.1 文件的读写操作 128
7.2 数据库的设计实例 130
7.3 关系数据库 139
问题与练习 141
第8章 程序性能 142
8.1 什么是程序性能 142
8.2 空间复杂度 143
8.3 时间复杂度 145
8.3.1 操作计数 146
8.3.2 最好、最坏和平均操作计数 147
8.3.3 步数 148
8.3.4 渐进记法 151
问题与练习 152
第9章 计算理论 155
9.1 函数及其计算 155
9.2 图灵机原理和丘奇·图灵论题 156
9.3 通用程序设计语言——Bare Bones(基本要素)语言 159
9.4 一个不可计算的函数 162
9.5 迭代结构与递归结构的等价性 163
9.6 P问题和NP问题 165
9.7 公钥密码学 168
9.7.1 模表示法 168
9.7.2 RSA公钥密码系统 168
问题与练习 169
第10章 计算机系统 170
10.1 信息=位+上下文 170
10.2 编译系统 173
10.3 指令的读取和解释 174
10.3.1 系统的硬件组成 175
10.3.2 执行hello程序 177
10.4 操作系统 179
10.4.1 进程 181
10.4.2 线程 182
10.4.3 虚拟存储器 182
10.4.4 文件 183
10.5 网络通信 184
10.6 抽象 184
10.7 高速缓存 185
10.8 存储设备层次结构 186
问题与练习 187
参考文献 188