图书介绍
精通C++ 第9版【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

- (美)托尼·加迪斯,朱迪·沃尔特斯,戈德弗雷·穆甘达著;黄刚等译 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302503163
- 出版时间:2018
- 标注页数:1214页
- 文件大小:126MB
- 文件页数:1243页
- 主题词:C++语言-程序设计
PDF下载
下载说明
精通C++ 第9版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 计算机和编程简介1
1.1 为什么要使用程序1
1.2 计算机系统:硬件和软件2
1.2.1 硬件2
1.2.2 软件5
1.2.3 思考题6
1.3 程序和编程语言6
1.3.1 程序的定义7
1.3.2 编程语言8
1.3.3 源代码、目标代码和可执行代码9
1.3.4 思考题11
1.4 程序的组成11
1.4.1 语言元素11
1.4.2 代码行和语句13
1.4.3 变量14
1.4.4 变量定义14
1.5 输入、处理和输出15
思考题15
1.6 编程过程16
1.6.1 设计和创建程序16
1.6.2 软件工程的定义19
1.6.3 思考题20
1.7 综合演练:显示个性化消息20
1.7.1 复习和练习21
1.7.2 编程挑战23
第2章 C++简介24
2.1 C++程序的部件24
思考题27
2.2 cout对象27
2.3 #include指令32
思考题33
2.4 变量和赋值语句33
2.5 常数35
2.5.1 有时数字并不是数字36
2.5.2 思考题36
2.6 标识符37
2.7 整型数据类型39
2.7.1 整数和长整型常数42
2.7.2 十六进制和八进制常数43
2.7.3 思考题43
2.8 浮点数据类型44
2.8.1 浮点常数45
2.8.2 将浮点值分配给整型变量46
2.8.3 思考题47
2.9 char数据类型47
2.10 C++string类51
2.10.1 使用string类51
2.10.2 思考题52
2.11 bool数据类型52
2.12 确定数据类型的大小53
2.13 变量赋值和初始化详解54
2.14 作用域56
2.15 算术运算符56
思考题60
2.16 注释60
2.16.1 单行注释61
2.16.2 多行注释61
2.17 编程风格62
2.18 综合演练:笑脸!63
2.18.1 复习和练习64
2.18.2 编程挑战68
第3章 表达式和交互71
3.1 cin对象71
3.1.1 输入多个值74
3.1.2 思考题76
3.2 数学表达式77
3.2.1 运算符的优先级79
3.2.2 关联性80
3.2.3 用圆括号分组80
3.2.4 将代数表达式转换为编程语句81
3.2.5 指数问题详解81
3.2.6 思考题83
3.3 数据类型转换和类型强制转换85
3.3.1 类型强制转换86
3.3.2 思考题89
3.4 溢出和下溢90
3.5 命名常量91
思考题93
3.6 多变量和组合赋值94
3.6.1 组合赋值运算符94
3.6.2 思考题96
3.7 格式化输出97
3.7.1 setprecision操作符100
3.7.2 fixed操作符103
3.7.3 showpoint操作符104
3.7.4 left和right操作符105
3.7.5 思考题107
3.8 处理字符和字符串107
3.8.1 输入字符串108
3.8.2 输入一个字符110
3.8.3 使用cin.get110
3.8.4 混合使用cin>>和cin.get112
3.8.5 使用cin.ignore112
3.8.6 实用的string成员函数和运算符113
3.8.7 使用C字符串115
3.8.8 为C字符串赋值116
3.8.9 跟踪一个C字符串的大小117
3.8.10 读取一行输入119
3.8.11 思考题120
3.9 更多数学库函数120
3.10 随机数字122
3.10.1 限制随机数的范围125
3.10.2 思考题125
3.11 关于调试:手动跟踪程序126
3.12 Green Fields Landscaping案例研究——第1部分127
3.12.1 问题陈述127
3.12.2 程序设计128
3.12.3 程序128
3.12.4 General Crates公司案例研究130
3.13 综合演练:单词游戏130
3.13.1 复习和练习132
3.13.2 编程挑战137
第4章 条件选择143
4.1 关系运算符143
4.1.1 关系的值144
4.1.2 真值和假值145
4.1.3 思考题147
4.2 if语句148
4.2.1 编程风格和if语句151
4.2.2 要注意的3个常见错误151
4.2.3 真值详解153
4.2.4 标记154
4.2.5 整数标记155
4.2.6 思考题155
4.3 if-else语句156
4.3.1 使用if或if-else的时机157
4.3.2 比较浮点数159
4.3.3 思考题161
4.4 if-else if语句161
4.4.1 使用结尾else166
4.4.2 思考题167
4.5 菜单驱动程序168
4.6 嵌套if语句170
思考题173
4.7 逻辑运算符174
4.7.1 &&运算符174
4.7.2 ||运算符176
4.7.3 !运算符178
4.7.4 布尔变量和!运算符179
4.7.5 逻辑运算符的优先级和关联性181
4.7.6 使用逻辑运算符检查数字范围182
4.7.7 思考题182
4.8 验证用户输入183
4.9 块和作用域详解185
4.9.1 同名变量186
4.9.2 思考题187
4.10 字符和字符串详解188
4.10.1 比较字符188
4.10.2 比较string对象189
4.10.3 测试字符191
4.10.4 思考题193
4.11 条件运算符194
4.11.1 使用条件表达式的值195
4.11.2 思考题197
4.12 switch语句197
4.12.1 在菜单驱动系统中使用switch203
4.12.2 思考题205
4.13 枚举数据类型206
思考题209
4.14 关于测试和调试:验证输出结果210
4.15 Green Fields Landscaping案例研究——第2部分212
4.15.1 问题陈述212
4.15.2 程序设计213
4.15.3 程序214
4.15.4 Crazy A1的计算机商业案例研究216
4.16 综合演练:算命游戏217
4.16.1 复习和练习218
4.16.2 编程挑战222
第5章 循环228
5.1 循环介绍:while循环228
5.1.1 while循环228
5.1.2 while是一个预测试循环230
5.1.3 无限循环231
5.1.4 编程风格和while循环232
5.1.5 思考题234
5.2 使用while循环验证输入235
5.3 递增和递减运算符237
5.3.1 后缀和前缀模式239
5.3.2 在数学表达式中使用递增和递减运算符241
5.3.3 在关系表达式中使用递增和递减运算符241
5.3.4 思考题242
5.4 计数器243
5.5 保持累计汇总245
5.6 标记符号247
思考题248
5.7 do-while循环249
5.7.1 toupper函数251
5.7.2 与菜单一起使用do-while252
5.7.3 思考题254
5.8 for循环254
5.8.1 for循环是一个预测试循环257
5.8.2 避免修改for循环体中的计数器变量257
5.8.3 更新表达式的其他形式258
5.8.4 定义for循环初始化表达式中的变量258
5.8.5 创建用户控制的for循环258
5.8.6 在初始化和更新表达式中使用多个语句259
5.8.7 省略for循环的表达式或循环体260
5.8.8 思考题260
5.9 关于软件工程:决定使用哪个循环261
5.9.1 while循环261
5.9.2 do-while循环262
5.9.3 for循环262
5.10 嵌套循环262
5.11 打破循环265
5.11.1 在嵌套循环中使用break266
5.11.2 continue语句267
5.11.3 思考题268
5.12 使用文件进行数据存储269
5.12.1 文件类型270
5.12.2 文件访问方法271
5.12.3 文件名和文件流对象271
5.12.4 为输入输出文件设置程序272
5.12.5 创建文件流对象并打开文件273
5.12.6 关闭文件274
5.12.7 将数据写入文件274
5.12.8 从文件读取数据276
5.12.9 读取位置278
5.12.10 让用户指定一个文件名279
5.12.11 使用旧版本C++中的c_str成员函数280
5.12.12 检测文件的末尾280
5.12.13 测试文件打开的错误282
5.12.14 思考题284
5.13 关于测试和调试:创建良好的测试数据284
5.14 Central Mountain Credit Union案例研究287
5.14.1 问题陈述287
5.14.2 计算287
5.14.3 变量287
5.14.4 程序设计288
5.14.5 详细伪代码288
5.14.6 程序289
5.14.7 测试程序291
5.14.8 Lightening Lanes案例研究291
5.15 综合演练:多彩世界291
5.15.1 复习和练习294
5.15.2 编程挑战299
第6章 函数305
6.1 模块化编程305
6.2 定义和调用函数306
6.2.1 空函数307
6.2.2 调用函数307
6.2.3 思考题313
6.3 函数原型314
6.4 将数据发送到函数中315
6.5 按值传递数据320
思考题322
6.6 使用return语句323
6.7 从函数返回值325
6.7.1 定义一个返回值函数325
6.7.2 调用返回值函数326
6.8 返回一个布尔值330
思考题332
6.9 在菜单驱动程序中使用函数332
6.10 局部变量和全局变量336
6.10.1 局部变量336
6.10.2 局部变量生存期338
6.10.3 使用形参值初始化本地变量338
6.10.4 全局变量338
6.10.5 全局常数340
6.10.6 具有相同名称的局部变量和全局变量342
6.11 静态局部变量343
思考题345
6.12 默认实参346
6.13 使用引用变量作为形参349
6.13.1 按引用传递实参和按值传递实参的时机353
6.13.2 将文件传递给函数355
6.13.3 思考题358
6.14 重载函数359
6.15 使用exit()函数364
思考题365
6.16 桩模块和驱动模块366
6.17 小乐透案例研究369
6.17.1 问题陈述369
6.17.2 程序设计369
6.17.3 程序371
6.17.4 High Adventrue TravelAgency旅行社案例研究374
6.18 综合演练:发光的南瓜灯374
6.18.1 复习和练习378
6.18.2 编程挑战381
第7章 类和对象简介388
7.1 抽象数据类型388
7.1.1 抽象388
7.1.2 在软件开发中使用抽象389
7.1.3 抽象数据类型389
7.2 面向对象编程389
7.3 关于类的介绍391
7.3.1 使用已经知道的类391
7.3.2 创建自己的类392
7.3.3 访问修饰符393
7.3.4 private和public成员的位置393
7.4 创建和使用对象394
7.4.1 访问对象的成员395
7.4.2 访问器和设置器396
7.5 定义成员函数397
7.5.1 类成员函数的命名约定399
7.5.2 避免陈旧数据402
7.5.3 内联函数详解402
7.5.4 思考题403
7.6 构造函数403
7.6.1 重载构造函数407
7.6.2 默认构造函数408
7.7 析构函数409
思考题410
7.8 私有成员函数412
7.9 将对象传递给函数415
7.9.1 常量引用形参418
7.9.2 从函数返回一个对象419
7.9.3 思考题422
7.10 对象组合422
思考题425
7.11 关于软件工程:分离类规范、实现和客户端代码426
7.11.1 使用多个文件的优点431
7.11.2 在类对象中执行输入输出432
7.11.3 思考题432
7.12 结构432
7.12.1 访问结构成员433
7.12.2 显示和比较结构变量435
7.12.3 初始化结构436
7.12.4 嵌套结构437
7.12.5 思考题440
7.12.6 将结构传递给函数441
7.12.7 从函数返回一个结构443
7.12.8 思考题444
7.13 枚举数据类型详解445
7.13.1 在同一个语句中声明enum数据类型并定义变量445
7.13.2 将整数赋值给enum变量445
7.13.3 将枚举量赋值给int变量446
7.13.4 使用数学运算符改变enum变量的值446
7.13.5 使用枚举量输出值446
7.13.6 使用枚举量控制循环447
7.13.7 使用C++11中的强类型enum448
7.14 Home Software公司OOP案例研究449
7.14.1 私有成员变量450
7.14.2 公共成员函数450
7.14.3 类声明450
7.14.4 withdraw会员函数451
7.14.5 类接口452
7.14.6 实现类452
7.15 面向对象分析与设计介绍456
7.15.1 寻找类459
7.15.2 确定类的责任462
7.15.3 这仅仅是个开始465
7.15.4 对象的可重用性465
7.15.5 面向对象与基于对象的编程465
7.15.6 思考题465
7.16 屏幕控制466
7.16.1 屏幕光标定位466
7.16.2 创建一个屏幕输入表单469
7.17 综合演练:溜溜球动画471
7.17.1 复习和练习473
7.17.2 编程挑战479
第8章 数组486
8.1 保存多个值的数组486
8.2 访问数组元素488
8.3 输入和显示数组内容489
8.3.1 将数据从文件读入数组491
8.3.2 将数组的内容写入文件493
8.3.3 C++中没有数组边界检查493
8.3.4 注意大小差一错误495
8.3.5 思考题496
8.4 数组初始化497
8.4.1 从数组元素1开始501
8.4.2 数组部分初始化501
8.4.3 隐式数组大小503
8.4.4 初始化变量的新方法503
8.5 基于范围的for循环504
8.6 处理数组内容507
8.6.1 复制一个数组到另一个509
8.6.2 比较两个数组510
8.6.3 对数字数组中的值求和511
8.6.4 查找数字数组中数值的平均值511
8.6.5 在数字数组中查找最高值和最低值512
8.6.6 部分填充数组514
8.6.7 为什么要使用数组515
8.6.8 处理字符串517
8.7 使用并行数组519
思考题521
8.8 typedef声明523
8.9 数组作为函数参数523
8.9.1 使用const数组形参529
8.9.2 一些有用的数组函数529
8.9.3 思考题532
8.10 二维数组533
8.10.1 将二维数组传递给函数537
8.10.2 对二维数组的所有元素求和539
8.10.3 对二维数组的行求和539
8.10.4 对二维数组的列求和540
8.11 三维或三维以上数组541
思考题543
8.12 矢量544
8.12.1 定义和初始化矢量545
8.12.2 存储和检索矢量中的值546
8.12.3 使用C++ 11中基于范围的for循环和vector548
8.12.4 使用push back成员函数549
8.12.5 确定矢量的大小550
8.12.6 从矢量中删除元素552
8.12.7 清理矢量553
8.12.8 检测一个空矢量554
8.12.9 矢量成员函数汇总556
8.12.10 思考题556
8.13 对象数组*557
8.13.1 思考题562
8.13.2 结构数组563
8.13.3 思考题566
8.14 National Commerce Bank案例研究567
8.15 综合演练:石头、剪刀、布569
8.15.1 复习和练习571
8.15.2 编程挑战575
第9章 搜索、排序和算法分析585
9.1 搜索算法简介585
9.1.1 线性搜索585
9.1.2 二分搜索588
9.2 搜索对象数组591
思考题595
9.3 排序算法简介595
9.3.1 冒泡排序595
9.3.2 选择排序599
9.3.3 思考题604
9.4 对象数组排序604
9.5 矢量排序和搜索607
9.6 算法分析简介609
9.6.1 计算问题和基本步骤610
9.6.2 算法的复杂度611
9.6.3 算法的最坏情况下的复杂度613
9.6.4 平均情况下的复杂度615
9.6.5 渐近复杂度与大O表示法615
9.6.6 思考题617
9.7 案例研究617
9.8 综合演练:秘密消息617
9.8.1 复习和练习622
9.8.2 编程挑战623
第10章 指针627
10.1 指针和地址运算符627
10.2 指针变量629
10.3 数组与指针之间的关系632
10.4 指针的算术运算637
10.5 初始化指针638
思考题640
10.6 比较指针641
10.7 使用指针作为函数形参643
10.8 指向常量的指针和常量指针647
10.8.1 指向常量的指针647
10.8.2 将一个非常量实参传递到一个指向常量的指针中648
10.8.3 常量指针649
10.8.4 指向常量的常量指针651
10.9 关于软件工程:动态内存分配651
10.10 关于软件工程:从函数返回指针655
10.10.1 停止内存泄漏658
10.10.2 思考题660
10.11 类对象和结构的指针662
10.11.1 类对象的动态分配663
10.11.2 使用指向类对象的指针作为函数形参665
10.12 关于软件工程:选择对象成员667
思考题668
10.13 智能指针669
10.13.1 unique_ptr类669
10.13.2 指向数组的独占指针672
10.13.3 unique_ptr类的成员函数673
10.13.4 shared_ptr类675
10.13.5 共享指针组676
10.13.6 双重管理的危险677
10.13.7 make_shared<T>()函数677
10.13.8 shared_ptr成员函数677
10.13.9 指向数组的共享指针678
10.14 综合演练:对不起,考试时间已到678
10.14.1 复习和练习681
10.14.2 编程挑战685
第11章 类和面向对象编程详解688
11.1 this指针和常量成员函数688
11.1.1 this指针688
11.1.2 常量成员函数692
11.2 静态成员693
11.2.1 静态成员变量694
11.2.2 静态成员函数697
11.3 类的友元700
思考题705
11.4 按成员赋值705
11.5 复制构造函数707
11.5.1 默认复制构造函数708
11.5.2 默认复制构造函数的缺陷709
11.5.3 程序员定义的复制构造函数712
11.5.4 复制构造函数的调用715
11.5.5 思考题716
11.6 运算符重载716
11.6.1 重载赋值运算符716
11.6.2 类赋值运算符的返回值718
11.6.3 类赋值运算符的实现718
11.6.4 重载其他运算符722
11.6.5 运算符重载的一些基本问题723
11.6.6 运算符重载的方法724
11.6.7 重载算术和关系运算符724
11.6.8 在独立函数和成员函数运算符之间作出选择727
11.6.9 重载前缀++运算符729
11.6.10 重载后缀++运算符729
11.6.11 重载流插入和提取运算符730
11.6.12 重载[]运算符734
11.6.13 思考题738
11.7 右值引用和移动操作738
11.7.1 左值和右值739
11.7.2 移动构造函数和移动赋值运算符740
11.7.3 编译器使用移动操作的时机748
11.7.4 默认操作748
11.8 函数对象和Lambda表达式749
11.8.1 谓词函数750
11.8.2 使用函数对象作为函数的形参751
11.8.3 排序数组和矢量751
11.8.4 从矢量中删除元素752
11.8.5 可存储值的函数对象754
11.8.6 返回void的函数对象755
11.8.7 在C++库中的函数类756
11.8.8 Lambda表达式758
11.8.9 思考题759
11.9 类型转换运算符759
11.10 转换构造函数762
思考题765
11.11 聚合和组合766
11.11.1 成员初始化列表766
11.11.2 通过指针聚合768
11.11.3 聚合、组合和对象生命周期769
11.11.4 Has-a关系771
11.12 继承772
11.12.1 普遍性和特殊性772
11.12.2 继承与Is-a关系772
11.12.3 继承和指针774
11.12.4 超类和子类777
11.12.5 多继承777
11.13 受保护的成员和类访问777
11.13.1 基类访问规范780
11.13.2 思考题781
11.14 构造函数、析构函数和继承782
11.14.1 将实参传递给基类构造函数784
11.14.2 思考题786
11.15 覆盖基类函数788
11.15.1 在基类函数和派生类覆盖版本之间做出选择790
11.15.2 重载和覆盖的区别790
11.15.3 获取被覆盖成员函数的访问权限790
11.16 综合演练:将数据发布到互联网791
11.16.1 复习和练习795
11.16.2 编程挑战800
第12章 C字符串和string类详解804
12.1 C字符串804
12.1.1 字符串常数805
12.1.2 程序员定义的字符数组806
12.1.3 指向char的指针807
12.2 处理C字符串的库函数809
12.2.1 strlen函数809
12.2.2 传递C字符串实参809
12.2.3 strcat函数809
12.2.4 strcpy函数810
12.2.5 比较C字符串811
12.2.6 strcmp函数812
12.2.7 结合使用!运算符与strcmp815
12.2.8 排序字符串815
12.2.9 思考题816
12.3 数字和字符串之间的转换818
12.3.1 使用字符串流对象进行数字转换818
12.3.2 数字转换函数820
12.3.3 思考题822
12.4 编写自己的C字符串处理函数822
12.4.1 使用指针传递C字符串实参826
12.4.2 思考题827
12.5 C++ string类详解828
12.6 Advanced Software Enterprises案例研究830
12.7 综合演练:程序执行环境831
12.7.1 复习和练习833
12.7.2 编程挑战836
第13章 高级文件和I/O操作841
13.1 输入和输出流841
13.1.1 文件流类841
13.1.2 文件打开模式844
13.1.3 使用构造函数打开文件844
13.1.4 输出格式化和I/O操作符844
13.1.5 思考题848
13.2 详细的错误测试849
13.3 读取和写入文件的成员函数852
13.3.1 getline函数853
13.3.2 get系列成员函数857
13.3.3 peek成员函数858
13.3.4 put成员函数860
13.3.5 倒回文件的开始位置861
13.3.6 思考题863
13.4 二进制文件865
13.5 使用结构创建记录869
思考题873
13.6 随机访问文件873
13.6.1 seekp和seekg成员函数874
13.6.2 tellp和tellg成员函数878
13.7 打开文件进行输入和输出880
思考题885
13.8 Online Friendship Connections案例研究:对象序列化885
13.8.1 对象序列化886
13.8.2 设计程序需要的类886
13.8.3 确定序列化方案887
13.9 综合演练:合并文件和设置HTML颜色891
13.9.1 复习和练习895
13.9.2 编程挑战898
第14章 递归902
14.1 递归介绍902
14.1.1 直接递归和间接递归907
14.1.2 思考题907
14.2 递归计算阶乘函数908
14.3 递归计算最大公约数函数910
14.4 解决递归式定义的问题911
14.5 递归二分搜索函数913
14.6 关于问题解决和程序设计:快速排序算法915
14.7 汉诺塔919
14.8 关于问题解决:穷举和枚举算法923
14.9 关于软件工程:递归与迭代926
14.10 综合演练:中缀和前缀表达式926
14.10.1 复习和练习930
14.10.2 编程挑战932
第15章 多态和虚函数935
15.1 继承层次结构中的类型兼容性935
15.1.1 继承的层次结构935
15.1.2 继承的类型兼容性935
15.1.3 基类指针的类型强制转换939
15.2 多态和虚成员函数941
15.2.1 动态和静态绑定946
15.2.2 C++11的override和final关键字947
15.2.3 防止成员函数被覆盖949
15.3 抽象基类和纯虚函数949
思考题952
15.4 关于面向对象编程:组合与继承的对比956
15.5 Secure Encryption System公司案例研究960
15.5.1 理解问题960
15.5.2 一个简单的加密/解密框架961
15.6 综合演练:移动图形964
15.6.1 复习和练习971
15.6.2 编程挑战973
第16章 异常、模板和标准模板库975
16.1 异常975
16.1.1 抛出异常976
16.1.2 处理异常976
16.1.3 异常未被捕获的情形978
16.1.4 面向对象的异常处理类978
16.1.5 多个异常980
16.1.6 从异常类中提取信息982
16.1.7 处理由new引发的bad alloc异常985
16.1.8 栈展开986
16.1.9 重新抛出异常986
16.1.10 思考题987
16.2 函数模板987
16.2.1 swap函数模板990
16.2.2 在函数模板中使用运算符992
16.2.3 使用多种类型的函数模板993
16.2.4 函数模板重载994
16.2.5 定义模板函数995
16.2.6 思考题995
16.3 类模板995
16.4 类模板和继承1001
思考题1004
16.5 标准模板库简介1005
16.5.1 顺序容器1005
16.5.2 关联容器1005
16.5.3 迭代器1006
16.5.4 迭代器的使用1006
16.5.5 vector容器1009
16.5.6 算法1010
16.6 综合演练:单词变形游戏1018
16.6.1 复习和练习1021
16.6.2 编程挑战1022
第17章 链表1026
17.1 链表ADT简介1026
17.1.1 链表对数组和矢量的优点1026
17.1.2 链表的结构1026
17.1.3 链表的C++表示1027
17.1.4 使用构造函数初始化结点1029
17.1.5 建立一个链表1030
17.1.6 遍历链表1030
17.1.7 思考题1032
17.2 链表操作1032
17.2.1 添加一个元素到链表中1034
17.2.2 显示链表1035
17.2.3 销毁链表1035
17.2.4 按排序顺序建立链表1037
17.2.5 将结点插入排序链表1037
17.2.6 思考题1040
17.2.7 从链表中删除元素1040
17.2.8 思考题1043
17.3 链表模板*1044
17.4 递归链表操作1048
17.4.1 递归链表函数1048
17.4.2 递归成员函数1051
17.4.3 递归add成员函数1052
17.4.4 递归remove成员函数1054
17.5 链表的变体1057
17.6 STL list容器*1058
17.7 Reliable Software Systems公司案例研究1060
17.7.1 问题陈述1060
17.7.2 修改和类设计规划1061
17.7.3 类成员函数的实现1061
17.8 综合演练:跑步穿过屏幕动画1064
17.8.1 使用图像映射表示形状1064
17.8.2 动画基础1066
17.8.3 实施细节1066
17.8.4 复习和练习1070
17.8.5 编程挑战1073
第18章 栈和队列1076
18.1 栈ADT简介1076
18.1.1 定义1076
18.1.2 栈的应用1076
18.1.3 静态栈和动态栈1077
18.1.4 栈操作1077
18.1.5 静态栈类1077
18.1.6 处理栈异常1082
18.1.7 栈模板1083
18.2 动态栈1083
18.3 标准模板库stack容器*1087
思考题1089
18.4 队列ADT简介1089
18.4.1 定义1089
18.4.2 队列的应用1089
18.4.3 静态队列和动态队列1090
18.4.4 队列操作1090
18.4.5 使用循环数组检测满队列和空队列1092
18.4.6 静态队列类1092
18.4.7 静态队列中的溢出和下溢异常1096
18.5 动态队列1096
18.6 标准模板库deque和queue容器*1100
18.6.1 deque容器1100
18.6.2 queue容器适配器1102
18.7 关于问题解决和程序设计:消除递归1103
18.8 综合演练:将后缀表达式转换为中缀表达式1107
18.8.1 复习和练习1110
18.8.2 编程挑战1112
第19章 二叉树1116
19.1 二叉树的定义和应用1116
19.1.1 二叉树的实现1116
19.1.2 二叉树的应用1118
19.1.3 思考题1119
19.2 二叉搜索树操作1119
19.2.1 创建二叉搜索树1119
19.2.2 二叉搜索树操作的实现1122
19.2.3 插入一个元素1123
19.2.4 遍历树1124
19.2.5 搜索二叉搜索树1126
19.2.6 删除元素1128
19.2.7 思考题1136
19.3 二叉搜索树模板注意事项1136
19.4 综合演练:谱系树1137
19.4.1 复习和练习1142
19.4.2 编程挑战1143
附录A ASCII字符集1146
附录B 运算符优先级和关联性1150
附录C 思考题答案1151
附录D 复习和练习奇数题的答案1193
热门推荐
- 1429844.html
- 141211.html
- 2117523.html
- 975093.html
- 1706816.html
- 2627267.html
- 2930559.html
- 1581364.html
- 3104635.html
- 3006623.html
- http://www.ickdjs.cc/book_114689.html
- http://www.ickdjs.cc/book_2015231.html
- http://www.ickdjs.cc/book_1497389.html
- http://www.ickdjs.cc/book_1405950.html
- http://www.ickdjs.cc/book_1556155.html
- http://www.ickdjs.cc/book_143497.html
- http://www.ickdjs.cc/book_435482.html
- http://www.ickdjs.cc/book_1029647.html
- http://www.ickdjs.cc/book_70731.html
- http://www.ickdjs.cc/book_1044632.html