第1章 C++概述 1
1.1你的第一个C++程序 2
1.2 C++的历史 3
1.3编译过程 6
1.4 C++程序结构 7
1.5变量 14
1.6数据类型 19
1.7表达式 26
1.8语句 36
本章小结 47
复习题 48
习题 50
第2章 函数与库 55
2.1函数概念 56
2.2库 59
2.3在C++中定义函数 61
2.4函数调用机制 65
2.5引用参数 73
2.6接口与实现 78
2.7接口设计原则 85
2.8随机数库的设计 90
2.9 Stanford类库介绍 107
本章小结 112
复习题 114
习题 115
第3章 字符串类string 125
3.1使用字符串作为抽象数据 126
3.2字符串操作 129
3.3 〈cctype〉库 137
3.4修改字符串中的内容 138
3.5遗留的C风格字符串 139
3.6编写字符串应用程序 140
3.7 strlib.h库 146
本章小结 147
复习题 148
习题 149
第4章 流类 159
4.1格式化输出 160
4.2格式化输入 165
4.3数据文件 167
4.4类层次 181
4.5 simpio.h和filelib.h库 186
本章小结 188
复习题 189
习题 190
第5章 集合类 195
5.1 Vector类 197
5.2 stack类 211
5.3 Queue类 217
5.4 Map类 226
5.5 set类 232
5.6在集合上进行迭代 236
本章小结 243
复习题 245
习题 246
第6章 类的设计 261
6.1二维点的表示 262
6.2操作符重载 268
6.3有理数 281
6.4 token扫描器类的设计 292
6.5将程序封装成类 301
本章小结 303
复习题 305
习题 306
第7章 递归简介 315
7.1一个简单的递归例子 316
7.2阶乘函数 318
7.3斐波那契函数 325
7.4检测回文 332
7.5二分查找算法 335
7.6间接递归 336
7.7递归地思考 338
本章小结 340
复习题 342
习题 344
第8章 递归策略 349
8.1汉诺塔 350
8.2子集求和问题 361
8.3字符排列 364
8.4图的递归 368
本章小结 375
复习题 375
习题 376
第9章 回溯算法 389
9.1迷宫的递归回溯 390
9.2回溯与游戏 400
9.3最小最大算法 409
本章小结 415
复习题 416
习题 417
第10章 算法分析 429
10.1排序问题 430
10.2时间复杂度 435
10.3递归的终止 443
10.4标准的算法复杂度类别 449
10.5快速排序算法 452
10.6数学归纳法 458
本章小结 462
复习题 463
习题 466
第11章 指针和数组 473
11.1内存结构 474
11.2指针 484
11.3数组 494
11.4指针运算 500
本章小结 506
复习题 508
习题 510
第12章 动态内存管理 515
12.1动态分配和堆 516
12.2链表 519
12.3释放内存 523
12.4定义Charstack类 527
12.5堆-栈图 536
12.6单元测试 543
12.7拷贝对象 546
12.8关键字const的使用 550
12.9 Charstack类的效率 558
本章小结 560
复习题 562
习题 564
第13章 效率和表示 569
13.1编辑文本的软件模式 570
13.2设计简单的文本编辑器 572
13.3基于数组的类实现 579
13.4基于栈的类实现 586
13.5基于列表的类实现 591
本章小结 607
复习题 608
习题 610
第14章 线性结构 615
14.1模板 616
14.2栈的实现 619
14.3队列的实现 634
14.4实现矢量类 649
14.5集成原型和代码 656
本章小结 657
复习题 658
习题 659
第15章 映射 663
15.1使用矢量实现映射 664
15.2查找表 668
15.3哈希 671
15.4实现HashMap类 682
本章小结 683
复习题 684
习题 685
第16章 树 689
16.1家谱 691
16.2二叉搜索树 693
16.3平衡树 706
16.4使用BST实现映射 717
16.5偏序数 719
本章小结 722
复习题 724
习题 727
第17章 集合 737
17.1集合作为一种数学抽象 738
17.2集合接口的扩展 742
17.3集合的实现策略 747
17.4优化小整数的集合 753
本章小结 761
复习题 762
习题 764
第18章 图 767
18.1图的结构 768
18.2表示策略 772
18.3一种低层的图抽象 776
18.4图的遍历 783
18.5定义图类 789
18.6寻找最短路径 804
18.7搜索网页的算法 808
本章小结 812
复习题 813
习题 815
第19章 继承 823
19.1简单的继承 824
19.2图形对象的继承层次 832
19.3表达式的类层次 842
19.4解析表达式 862
19.5多重继承 871
本章小结 874
复习题 876
习题 878
第20章 迭代策略 887
20.1使用迭代器 888
20.2使用函数作为数据值 892
20.3用函数封装数据 901
20.4 STL算法库 906
20.5 C++的函数式编程 909
20.6迭代器的实现 913
本章小结 920
复习题 922
习题 923