封面
版权信息
内容提要
前言
资源与支持
第1章 抽象与分析
1.1 概要
1.2 功能的抽象
1.3 算法分析
1.4 小结
1.5 练习
第2章 数据的抽象
2.1 概要
2.2 抽象数据类型
2.3 抽象数据类型和对象
2.4 抽象数据类型的实例:数据集(Dataset)
2.5 抽象数据类型的实例:有理数(Rational)
2.6 增量开发以及单元测试
2.7 小结
2.8 练习
第3章 容器类
3.1 概要
3.2 Python的列表
3.3 顺序集合:扑克牌牌组
3.4 有序集合:手牌
3.5 Python里列表的实现
3.6 Python的字典(选读)
3.7 小结
3.8 练习
第4章 链式结构和迭代器
4.1 概要
4.2 Python的内存模型
4.3 链表实现
4.4 链表抽象数据类型的实现
4.5 迭代器
4.6 基于游标的列表API(选读)
4.7 链表vs数组
4.8 小结
4.9 练习
第5章 堆栈和队列
5.1 概要
5.2 堆栈
5.3 队列
5.4 队列的实现
5.5 应用程序示例:队列的模拟(选读)
5.6 小结
5.7 练习
第6章 递归
6.1 概要
6.2 递归定义
6.3 简单的递归示例
6.4 递归的分析
6.5 排序
6.6 一个“难”题:汉诺塔
6.7 小结
6.8 练习
第7章 树
7.1 概要
7.2 树的术语
7.3 示例应用程序:表达式树
7.4 树的存储方式
7.5 应用:二叉搜索树
7.6 使用二叉搜索树(BST)来实现映射(选读)
7.7 小结
7.8 练习
第8章 为Python程序员准备的C++简介
8.1 概要
8.2 C++的历史和背景
8.3 注释、代码块、变量名和关键字
8.4 数据类型和变量声明
8.5 Include语句、命名空间以及输入/输出
8.6 编译
8.7 表达式和运算符优先级
8.8 条件语句
8.9 数据类型转换
8.10 循环语句
8.11 数组
8.12 函数的细节
8.13 头文件和内联函数
8.14 断言与测试
8.15 变量的作用域以及生命周期
8.16 Python程序员编写C++程序时的常见错误
8.17 其他的C++相关话题(选读)
8.18 小结
8.19 练习
第9章 C++类
9.1 基本的语法和语义
9.2 字符串
9.3 文件输入和输出
9.4 运算符重载
9.5 类变量和方法
9.6 小结
9.7 练习
第10章 C++的动态内存
10.1 概要
10.2 C++的指针
10.3 动态数组
10.4 动态内存类
10.5 动态内存错误
10.6 小结
10.7 练习
第11章 C++的链式结构
11.1 概要
11.2 C++链式结构的类
11.3 C++链表
11.4 C++链接的动态内存错误
11.5 小结
11.6 练习
第12章 C++模板
12.1 概要
12.2 模板方法
12.3 模板类
12.4 小结
12.5 练习
第13章 堆、平衡树和散列表
13.1 概要
13.2 优先队列和堆
13.3 平衡树
13.4 其他的树结构
13.5 散列表
13.6 小结
13.7 练习
第14章 图
14.1 概要
14.2 图数据结构
14.3 最短路径算法
14.4 深度优先算法
14.5 最小生成树
14.6 小结
14.7 练习
第15章 算法技术
15.1 概要
15.2 分治算法
15.3 贪心算法
15.4 动态规划
15.5 NP完全问题
15.6 小结
15.7 练习
术语表
更新时间:2020-05-20 09:14:51