第1章 简介 1
1.1 literate程序 2
1.2 编程风格 6
1.3 效率 7
参考书目浅析 9
练习 9
第2章 接口与实现 11
2.1 接口 11
2.2 实现 13
2.3 抽象数据类型 15
2.4 客户调用程序的责任 17
2.5 效率 21
参考书目浅析 21
练习 22
第3章 原子 25
3.1 接口 25
3.2 实现 26
参考书目浅析 31
练习 31
第4章 异常与断言 33
4.1 接口 34
4.2 实现 38
4.3 断言 43
参考书目浅析 46
练习 46
第5章 内存管理 49
5.1 接口 50
5.2 产品级实现 53
5.3 校验实现 55
练习 62
参考书目浅析 62
第6章 进一步内存管理 65
6.1 接口 65
6.2 实现 67
参考书目浅析 72
练习 73
第7章 链表 75
7.1 接口 75
7.2 实现 78
练习 83
参考书目浅析 83
第8章 表格 85
8.1 接口 85
8.2 例子:单词频率 87
8.3 实现 92
参考书目浅析 98
练习 98
第9章 集合 101
9.1 接口 101
9.2 实例:交叉引用列表 103
9.3 实现 109
9.3.1 成员操作 110
9.3.2 集合操作 113
参考书目浅析 116
练习 116
第10章 动态数组 119
10.1 接口 119
10.2 实现 122
参考书目浅析 124
练习 125
11.1 接口 127
第11章 序列 127
11.2 实现 128
参考书目浅析 133
练习 133
第12章 环 135
12.1 接口 135
12.2 实现 137
参考书目浅析 144
练习 144
13.1 接口 147
第13章 位向量 147
13.2 实现 149
13.2.1 成员操作 150
13.2.2 比较 154
13.2.3 集合操作 155
参考书目浅析 157
练习 157
第14章 格式化 159
14.1 接口 159
14.1.1 格式化函数 160
14.1.2 转换函数 162
14.2 实现 165
14.2.1 格式化函数 165
14.2.2 转换函数 171
参考书目浅析 175
练习 176
第15章 低级字符串 177
15.1 接口 178
15.3 实现 183
15.2 例子:打印标识符 183
15.3.1 字符串操作 185
15.3.2 分析字符串 189
15.3.3 转换函数 193
参考书目浅析 193
练习 194
第16章 高级字符串 197
16.1 接口 197
16.2 实现 202
16.2.1 字符串操作 205
16.2.2 内存管理 208
16.2.3 分析字符串 210
16.2.4 转换函数 214
参考书目浅析 214
练习 215
第17章 扩展精度算法 217
17.1 接口 217
17.2 实现 221
17.2.1 加法和减法 222
17.2.2 乘法 224
17.2.3 除法和比较 225
17.2.4 移位 230
17.2.5 字符串转换 232
参考书目浅析 234
练习 234
第18章 任意精度算法 237
18.1 接口 237
18.2 示例:一个计算器 240
18.3 实现 245
18.3.1 取反和乘法 247
18.3.2 加法和减法 248
18.3.3 除法 250
18.3.4 求幂 252
18.3.4 比较 253
18.3.6 简易函数 254
18.3.7 移位 255
18.3.8 字符串和整数转换 256
参考书目浅析 259
练习 259
第19章 多精度算法 261
19.1 接口 261
19.2 示例:另一计算器 266
19.3 实现 272
19.3.1 转换 276
19.3.2 无符号算法 278
19.3.3 有符号算法 280
19.3.4 简易函数 283
19.3.5 比较和逻辑操作 288
19.3.6 字符串转换 291
参考书目浅析 293
练习 293
第20章 线程 295
20.1 接口 297
20.1.1 Thread 297
20.1.2 一般信号量 300
20.1.3 同步通信通道 302
20.2 示例 303
20.2.1 并行排序 303
20.2.2 临界区 307
20.2.3 生成素数 309
20.3.1 同步通信通道 312
20.3 实现 312
20.3.2 线程 314
20.3.3 线程创建与上下文转换 322
20.3.4 抢占 328
20.3.5 一般信号量 330
20.3.6 MIPS和ALPHA上的上下文转换 331
参考书目浅析 335
练习 336
附录 接口概要 339
参考书目 361
索引 367