第1章 引言 1
1.1 文学程序 2
1.2 程序设计风格 6
1.3 效率 8
1.4 扩展阅读 9
1.5 习题 9
第2章 接口与实现 11
2.1 接口 11
2.2 实现 13
2.3 抽象数据类型 15
2.4 客户程序的职责 17
2.5 效率 21
2.6 扩展阅读 22
2.7 习题 22
第3章 原子 24
3.1 接口 24
3.2 实现 25
3.3 扩展阅读 30
3.4 习题 31
第4章 异常与断言 33
4.1 接口 35
4.2 实现 38
4.3 断言 44
4.4 扩展阅读 46
4.5 习题 47
第5章 内存管理 49
5.1 接口 50
5.2 产品实现 54
5.3 稽核实现 55
5.4 扩展阅读 62
5.5 习题 63
第6章 再谈内存管理 65
6.1 接口 65
6.2 实现 67
6.3 扩展阅读 72
6.4 习题 73
第7章 链表 75
7.1 接口 75
7.2 实现 79
7.3 扩展阅读 83
7.4 习题 83
第8章 表 84
8.1 接口 84
8.2 例子:词频 87
8.3 实现 91
8.4 扩展阅读 97
8.5 习题 97
第9章 集合 99
9.1 接口 99
9.2 例子:交叉引用列表 101
9.3 实现 107
9.3.1 成员操作 109
9.3.2 集合操作 111
9.4 扩展阅读 114
9.5 习题 115
第10章 动态数组 116
10.1 接口 116
10.2 实现 119
10.3 扩展阅读 122
10.4 习题 122
第11章 序列 123
11.1 接口 123
11.2 实现 125
11.3 扩展阅读 129
11.4 习题 129
第12章 环 131
12.1 接口 131
12.2 实现 134
12.3 扩展阅读 141
12.4 习题 141
第13章 位向量 142
13.1 接口 142
13.2 实现 144
13.2.1 成员操作 146
13.2.2 比较 150
13.2.3 集合操作 151
13.3 扩展阅读 152
13.4 习题 153
第14章 格式化 154
14.1 接口 154
14.1.1 格式化函数 155
14.1.2 转换函数 157
14.2 实现 160
14.2.1 格式化函数 161
14.2.2 转换函数 166
14.3 扩展阅读 170
14.4 习题 171
第15章 低级字符串 172
15.1 接口 173
15.2 例子:输出标识符 178
15.3 实现 179
15.3.1 字符串操作 180
15.3.2 分析字符串 184
15.3.3 转换函数 188
15.4 扩展阅读 189
15.5 习题 189
第16章 高级字符串 192
16.1 接口 192
16.2 实现 197
16.2.1 字符串操作 200
16.2.2 内存管理 204
16.2.3 分析字符串 205
16.2.4 转换函数 209
16.3 扩展阅读 210
16.4 习题 210
第17章 扩展精度算术 212
17.1 接口 212
17.2 实现 217
17.2.1 加减法 218
17.2.2 乘法 220
17.2.3 除法和比较 221
17.2.4 移位 226
17.2.5 字符串转换 228
17.3 扩展阅读 230
17.4 习题 230
第18章 任意精度算术 232
18.1 接口 232
18.2 例子:计算器 235
18.3 实现 240
18.3.1 取反和乘法 242
18.3.2 加减法 243
18.3.3 除法 246
18.3.4 取幂 247
18.3.5 比较 249
18.3.6 便捷函数 250
18.3.7 移位 251
18.3.8 与字符串和整数的转换 252
18.4 扩展阅读 254
18.5 习题 255
第19章 多精度算术 257
19.1 接口 257
19.2 例子:另一个计算器 263
19.3 实现 269
19.3.1 转换 272
19.3.2 无符号算术 275
19.3.3 有符号算术 277
19.3.4 便捷函数 280
19.3.5 比较和逻辑操作 285
19.3.6 字符串转换 288
19.4 扩展阅读 290
19.5 习题 291
第20章 线程 292
20.1 接口 294
20.1.1 线程 294
20.1.2 一般信号量 298
20.1.3 同步通信通道 301
20.2 例子 301
20.2.1 并发排序 302
20.2.2 临界区 305
20.2.3 生成素数 307
20.3 实现 311
20.3.1 同步通信通道 311
20.3.2 线程 313
20.3.3 线程创建和上下文切换 322
20.3.4 抢占 328
20.3.5 一般信号量 330
20.3.6 MIPS和ALPHA上的上下文切换 332
20.4 扩展阅读 335
20.5 习题 336
附录A 接口摘要 339
参考书目 363