书籍详情
数据结构C++语言描述:应用标准模板库(STL)
作者:(美)William Ford,(美)William Topp著;陈君译;陈君译
出版社:清华大学出版社
出版时间:2003-05-01
ISBN:9787302065494
定价:¥89.00
购买这本书可以去
内容简介
本书是Ford和Topp两位教授于1996年出版的名著DataStructureswithC++的第2版,新版中引入了在ANSIC1998中正式规定的标准模板库(STL)来讲授数据结构,在全球范围内已经有数以万计的学生从中受益。作者将C++语言作为算法描述语言,应用包含规范化的数据结构的标准模板库,集中讲述了数组、向量、表、关联树容器,以及集合、映射、堆、哈希表和图等数据结构及其算法,重点讨论了如何高效地存储大型数据集合,涵盖了数据结构初级和高级教程的最新内容。书中各章章前提出学习目标,章后附有丰富的练习题、答案以及书面练习和上机编程练习,指导读者迅速、全面地掌握核心知识点和编程技巧。本书可作为计算机及相关专业数据结构课程的核心教材,对于广大研发人员,也是一本数据结构与面向对象技术完整结合的全新技术参考用书。
作者简介
暂缺《数据结构C++语言描述:应用标准模板库(STL)》作者简介
目录
第1章 数据结构入门
1.1 本书主要内容
1.2 数据结构的抽象形式
1.3 作为类的ADT
1.3.1 C++类
1.3.2 private和public部分
1.3.3 封装和信息隐藏
1.3.4 time24类
1.4 实现C++类
1.5 声明和使用对象
1.6 使用嵌入码实现类
1.7 应用程序编程接口(API)
1.7.1 随机数
1.7.2 randomNumber API
1.7.3 应用程序:掷骰子游戏
1.8 字符串
1.8.1 字符串类
1.8.2 附加字符串函数和操作
1.9 本章小结
1.10 本章使用的类和库
1.11 复习题
1.12 书面作业
1.13 上机题
1.14 项目设计
第2章 对象设计技术
2.1 软件设计
2.1.1 需求和问题分析
2.1.2 程序设计
2.1.3 设计日历类
2.1.4 程序实现
2.1.5 实现日历类
2.1.6 程序测试与调试
2.1.7 程序维护
2.2 处理运行时错误
2.2.1 终止程序
2.2.2 设置标志
2.2.3 C++异常
2.3 对象复合
2.3.1 timeCard类
2.3.2 实现timeCard类
2.4 运算符重载
2.4.1 运算符函数
2.4.2 自由函数的运算符重载
2.4.3 友元函数的运算符重载
2.4.4 重载数据流I/O运算符
2.4.5 成员函数重载
2.5 本章小结
2.6 本章使用的类和库
2.7 复习题
2.8 书面作业
2.9 上机题
2.10 项目设计
第3章 算法概述
3.1 选择排序
3.2 简单查找算法
3.2.1 顺序查找
3.2.2 二分查找
3.3 算法分析
3.3.1 系统呐存性能标准
3.3.2 算法性能标准:时间复杂度分析
3.3.3 大O符号
3.3.4 常见数量级
3.4 分析查找算法
3.4.1 二分查找时间复杂度
3.4.2 查找算法比较
3.5 算法的通用性
3.5.1 模板语法
3.5.2 运行时模板扩展
3.5.3 基于模板的查找函数
3.6 递归的概念
3.6.1 实现递归函数
3.6.2 递归的工作方式
3.6.3 应用:多进制输出
3.7 用递归解决问题
3.7.1 汉诺塔
3.7.2 数论:最大公约数
3.7.3 gcd的应用:有理数
3.7.4 计算递归式
3.8 本章小结
3.9 本章使用的类和库
3.10 复习题
3.11 书面作业
3.12 上机题
3.13 项目设计
第4章 向量容器
4.1 STL容器类概述
4.2 模板类
4.2.1 构造模板类
4.2.2 声明模板类对象
4.3 向量类
4.3.1 向量容器入门
4.3.2 向量API
4.4 向量应用
4.4.1 合并向量
4.4.2 插入排序
4.5 本章小结
4.6 本章使用的类和库
4.7 复习题
4.8 书面作业
4.9 上机题
4.10 项目设计
第5章 指针和动态内存
5.1 C++指针
5.1.1 声明指针变量
5.1.2 指针赋值
5.1.3 用指针访问数据
5.1.4 数组和指针
5.1.5 指针和类类型
5.2 动态内存
5.2.1 内存分配运算符new
5.2.2 动态数组分配
5.2.3 内存释放运算符delete
5.3 使用动态内存的类
5.3.1 dynaimicClass类
5.3.2 析构函数
5.4 赋值和初始化
5.4.1 赋值问题
5.4.2 重载的赋值运算符
5.4.3 指针this
5.4.4 初始化问题
5.4.5 创建复制构造函数
5.5 miniVector类
5.5.1 miniVector类的设计
5.5.2 分配更多的容量
5.5.3 miniVector的构造函数、析构函数和赋值
5.5.4 从miniVector对象中增加和删除元素
5.5.5 重载下标运算符
5.6 矩阵类
5.6.1 描述矩阵容器
5.6.2 实现矩阵函数
5.7 本章小结
5.8 本章中的类和库
5.9 复习题
5.10 书面作业
5.11 上机题
5.12 项目设计
第6章 表容器和迭代器
6.1 表容器
6.1.1 表ADT
6.1.2 表API
6.1.3 应用:表回文
6.2 迭代器
6.2.1 迭代器的概念
6.2.2 常量迭代器
6.2.3 顺序查找表
6.2.4 应用:词的出现频率
6.3 表插入和删除操作
6.3.1 有序表
6.3.2 删除重复项
6.3.3 合并两个表
6.4 实例研究:毕业生表
6.4.1 问题分析
6.4.2 程序设计
6.4.3 程序实现
6.5 本章小结
6.6 本章使用的类和库
6.7 复习题
6.8 书面作业
6.9 上机题
6.10 项目设计
第7章 栈
7.1 栈ADT
7.1.1 多进制输出
7.1.2 分解栈元素
7.2 递归代码和运行栈
7.3 栈的实现
7.3.1 miniStack类的实现
7.3.2 STL stack类的实现(选学)
7.4 后缀表达式
7.4.1 后缀计算
7.4.2 postfixEval类
7.5 实例研究:中缀表达式计算
7.5.1 中缀表达式的特征
7.5.2 中缀到后缀的转换:算法设计
7.5.3 中缀转换为后缀:对象设计
7.5.4 infix2Postfix类的实现
7.6 本章小结
7.7 本章使用的类
7.8 复习题
7.9 书面作业
7.10 上机题
7.11 项目设计
第8章 队列和优先级队列
8.1 队列ADT
8.2 基数排序
8.3 实现miniQueue类
8.4 实例研究:时间驱动的模拟
8.4.1 模拟程序设计
8.4.2 模拟程序的具体实现
8.5 用数组实现队列
8.5.1 设计有界队列
8.5.2 有界队列的实现
8.6 优先级队列
8.6.1 优先级队列ADT
8.6.2 优先级队列排序
8.6.3 公司内的支持服务
8.7 本章小结
8.8 本章使用的类和库
8.9 复习题
8.10 书面作业
8.11 上机题
8.12 项目设计
第9章 链表
9.1 链表结点
9.1.1 链表结点类
9.1.2 添加和删除结点
9.2 建立链表
9.2.1 定义单向链表
9.2.2 在链表表头插入结点
9.2.3 在链表表头删除结点
9.2.4 删除特定的结点
9.3 处理链表表尾
9.4 用链表实现队列
9.4.1 linkedQueue类
9.4.2 实现linkedQueue类
9.5 双向链表
9.5.1 dnode对象
9.5.2 双向循环链表
9.6 更新双向链表
9.6.1 insert()函数
9.6.2 erase()函数
9.7 约瑟夫问题
9.8 miniList类
9.8.1 miniList类的私有成员
9.8.2 miniList类的构造函数和析构函数
9.8.3 处理表两端元素的函数
9.8.4 miniList的选代器
9.8.5 miniList类成员函数begin()和end()
9.8.6 miniList类的通用插入函数
9.9 选择顺序容器
9.10 本章小结
9.11 本章使用的类和库
9.12 复习题
9.13 书面作业
9.14 上机题
9.15 项目设计
第10章 二叉树
10.1 树结构
10.1.1 术语
10.1.2 二叉树
10.2 二叉树结点
10.3 二叉树遍历算法
10.3.1 递归的树遍历
10.3.2 迭代层次遍历
10.4 使用树遍历算法
10.4.1 叶结点计数
10.4.2 计算树的深度
10.4.3 复制二叉树
10.4.4 删除树结点
10.4.5 显示二叉树
10.5 二叉搜索树
10.5.1 二叉搜索树概述
10.5.2 创建二叉搜索树
10.5.3 二叉搜索树中的数据查找
10.5.4 二叉搜索树的删除
10.5.5 二叉搜索树类
10.5.6 访问和更新操作
10.6 二叉搜索树的应用
10.6.1 应用:消除重复项
10.6.2 应用:录像带商店
10.7 stree类的实现
10.7.1 stree类数据成员
10.7.2 构造函数、析构函数和赋值运算符
10.7.3 更新操作
10.7.4 二叉搜索树的算法复杂度
10.8 stree迭代器(选学)
10.9 本章小结
10.10 本章使用的类和库
10.11 复习题
10.12 书面作业
10.13 上机题
10.14 项目设计
第11章 关联容器
11.1 关联容器概述
11.1.1 关联容器的种类
11.1.2 STL关联容器
11.1.3 实现关联容器
11.2 集合
11.2.1 使用迭代器显示容器元素
11.2.2 集合的访问和更新函数
11.2.3 简单的拼写检查程序
11.2.4 应用:埃拉托斯特尼筛法
11.2.5 集合运算
11.2.6 应用:更新计算机账号
11.3 映射
11.3.1 map类接口
11.3.2 映射的操作函数
11.3.3 映射的下标运算符
11.3.4 实例学习:单词统计
11.4 多重集
11.5 实现集合和映射
11.5.1 实现miniSet的操作函数
11.5.2 miniMap类
11.5.3 实现miniMap类
11.5.4 miniMap的下标运算符
11.6 本章小结
11.7 本章使用的类和库
11.8 复习题
11.9 书面作业
11.10 上机题
11.11 项目设计
第12章 高级关联结构
12.1 哈希法
12.2 设计哈希函数
12.2.1 函数对象
12.2.2 函数对象举例
12.2.3 整型哈希函数
12.2.4 字符串哈希函数
12.2.5 定制哈希函数
12.3 哈希表
12.3.1 线性探测开放寻址法
12.3.2 独立表链地址法
12.4 hash类
12.4.1 应用:使用哈希表
12.4.2 hash类的实现
12.4.3 实现哈希迭代器
12.4.4 无序关联容器
12.5 哈希表的性能
12.6 2-3-4树
12.6.1 2-3-4树的插入算法
12.6.2 2-3-4树操作函数的时间复杂度
12.7 红黑树
12.7.1 红黑树的属性
12.7.2 向红黑树中添加结点
12.7.3 构造红黑树
12.7.4 查找算法的时间复杂度(选学)
12.7.5 从红黑树中删除结点
12.8 rbtree类
12.8.1 rbtree类的私有部分
12.8.2 拆分4-结点
12.8.3 insert()操作函数
12.9 本章小结
12.10 本章用到的类和库
12.11 复习题
12.12 书面作业
12.13 上机题
12.14 项目设计
第13章 继承和抽象类
13.1 C++中的继承
13.1.1 声明员工层次关系
13.1.2 派生类的构造函数
13.1.3 实现成员函数
13.2 图形层次
13.2.1 circleShape类
13.2.2 其他图形类和文本类
13.2.3 polyShape类的实现
13.3 图形系统
13.4 安全向量
13.5 有序表
13.6 多态属性和虚函数
13.6.1 动态绑定
13.6.2 应用:用多态性机制编写支付员工薪金的程序
13.6.3 C++的多态实现
13.6.4 虚函数和析构函数
13.7 抽象类
13.7.1 抽象类接口
13.7.2 栈接口
13.8 本章小结
13.9 本章使用的类和库
13.10 复习题
13.11 书面作业
13.12 上机题
13.13 项目设计
第14章 堆、2进制文件和位组
14.1 基于数组的二叉树
14.2 堆
14.2.1 堆的插入操作
14.2.2 从堆中删除元素
14.2.3 堆排序
14.2.4 向量堆化
14.3 优先级队列的实现
14.4 2进制文件
14.4.1 文件结构
14.4.2 直接读写文件
14.4.3 读写2进制文件
14.4.4 应用:银行账户记录
14.5 位组
14.5.1 bitVector类
14.5.2 实现bitVector类
14.6 实例研究:霍夫曼压缩
14.6.1 创建霍夫曼树
14.6.2 霍夫曼压缩的实现
14.6.3 霍夫曼解压缩
14.7 本章小结
14.8 本章使用的类和库
14.9 复习题
14.10 书面作业
14.11 上机题
14.12 项目设计
第15章 递归算法
15.1 分而治之算法
15.1.1 创建标尺
15.1.2 归并排序
15.1.3 快速排序
15.1.4 排序算法的比较
15.1.5 应用:搜索第k大的元素
15.2 组合学
15.2.1 查找所有子集
15.2.2 排列
15.3 动态编程
15.3.1 自顶向下的动态编程
15.3.2 应用:组合
15.3.3 自底向上动态编程
15.3.4 背包问题
15.4 回溯法:八皇后问题
15.4.1 问题分析
15.4.2 程序设计
15.4.3 显示棋盘
15.4.4 八皇后问题实例分析
15.5 本章小结
15.6 本章使用的类和库
15.7 复习题
15.8 书面作业
15.9 上机题
15.10 项目设计
第16章 图
16.1 图论术语
16.1.1 有向图
16.1.2 加权图
16.2 图类
16.2.1 图的API清单
16.2.2 图的表示
16.3 图类设计
16.3.1 顶点信息表示
16.3.2 顶点映射和Vinfo表
16.3.3 图类声明
16.3.4 图类的实现
16.4 图的遍历算法
16.4.1 广度优先搜索算法
16.4.2 深度优先访问算法
16.4.3 深度优先搜索
16.5 图遍历的应用
16.5.1 无环图
16.5.2 拓扑排序
16.5.3 强连通分量
16.6 图的最小化算法
16.6.1 最短路径算法
16.6.2 Dijkstra最小路径算法
16.6.3 最小生成树
16.7 本章小结
16.8 本章使用的类和库
16.9 复习题
16.10 书面作业
16.11 上机题
16.12 项目设计
1.1 本书主要内容
1.2 数据结构的抽象形式
1.3 作为类的ADT
1.3.1 C++类
1.3.2 private和public部分
1.3.3 封装和信息隐藏
1.3.4 time24类
1.4 实现C++类
1.5 声明和使用对象
1.6 使用嵌入码实现类
1.7 应用程序编程接口(API)
1.7.1 随机数
1.7.2 randomNumber API
1.7.3 应用程序:掷骰子游戏
1.8 字符串
1.8.1 字符串类
1.8.2 附加字符串函数和操作
1.9 本章小结
1.10 本章使用的类和库
1.11 复习题
1.12 书面作业
1.13 上机题
1.14 项目设计
第2章 对象设计技术
2.1 软件设计
2.1.1 需求和问题分析
2.1.2 程序设计
2.1.3 设计日历类
2.1.4 程序实现
2.1.5 实现日历类
2.1.6 程序测试与调试
2.1.7 程序维护
2.2 处理运行时错误
2.2.1 终止程序
2.2.2 设置标志
2.2.3 C++异常
2.3 对象复合
2.3.1 timeCard类
2.3.2 实现timeCard类
2.4 运算符重载
2.4.1 运算符函数
2.4.2 自由函数的运算符重载
2.4.3 友元函数的运算符重载
2.4.4 重载数据流I/O运算符
2.4.5 成员函数重载
2.5 本章小结
2.6 本章使用的类和库
2.7 复习题
2.8 书面作业
2.9 上机题
2.10 项目设计
第3章 算法概述
3.1 选择排序
3.2 简单查找算法
3.2.1 顺序查找
3.2.2 二分查找
3.3 算法分析
3.3.1 系统呐存性能标准
3.3.2 算法性能标准:时间复杂度分析
3.3.3 大O符号
3.3.4 常见数量级
3.4 分析查找算法
3.4.1 二分查找时间复杂度
3.4.2 查找算法比较
3.5 算法的通用性
3.5.1 模板语法
3.5.2 运行时模板扩展
3.5.3 基于模板的查找函数
3.6 递归的概念
3.6.1 实现递归函数
3.6.2 递归的工作方式
3.6.3 应用:多进制输出
3.7 用递归解决问题
3.7.1 汉诺塔
3.7.2 数论:最大公约数
3.7.3 gcd的应用:有理数
3.7.4 计算递归式
3.8 本章小结
3.9 本章使用的类和库
3.10 复习题
3.11 书面作业
3.12 上机题
3.13 项目设计
第4章 向量容器
4.1 STL容器类概述
4.2 模板类
4.2.1 构造模板类
4.2.2 声明模板类对象
4.3 向量类
4.3.1 向量容器入门
4.3.2 向量API
4.4 向量应用
4.4.1 合并向量
4.4.2 插入排序
4.5 本章小结
4.6 本章使用的类和库
4.7 复习题
4.8 书面作业
4.9 上机题
4.10 项目设计
第5章 指针和动态内存
5.1 C++指针
5.1.1 声明指针变量
5.1.2 指针赋值
5.1.3 用指针访问数据
5.1.4 数组和指针
5.1.5 指针和类类型
5.2 动态内存
5.2.1 内存分配运算符new
5.2.2 动态数组分配
5.2.3 内存释放运算符delete
5.3 使用动态内存的类
5.3.1 dynaimicClass类
5.3.2 析构函数
5.4 赋值和初始化
5.4.1 赋值问题
5.4.2 重载的赋值运算符
5.4.3 指针this
5.4.4 初始化问题
5.4.5 创建复制构造函数
5.5 miniVector类
5.5.1 miniVector类的设计
5.5.2 分配更多的容量
5.5.3 miniVector的构造函数、析构函数和赋值
5.5.4 从miniVector对象中增加和删除元素
5.5.5 重载下标运算符
5.6 矩阵类
5.6.1 描述矩阵容器
5.6.2 实现矩阵函数
5.7 本章小结
5.8 本章中的类和库
5.9 复习题
5.10 书面作业
5.11 上机题
5.12 项目设计
第6章 表容器和迭代器
6.1 表容器
6.1.1 表ADT
6.1.2 表API
6.1.3 应用:表回文
6.2 迭代器
6.2.1 迭代器的概念
6.2.2 常量迭代器
6.2.3 顺序查找表
6.2.4 应用:词的出现频率
6.3 表插入和删除操作
6.3.1 有序表
6.3.2 删除重复项
6.3.3 合并两个表
6.4 实例研究:毕业生表
6.4.1 问题分析
6.4.2 程序设计
6.4.3 程序实现
6.5 本章小结
6.6 本章使用的类和库
6.7 复习题
6.8 书面作业
6.9 上机题
6.10 项目设计
第7章 栈
7.1 栈ADT
7.1.1 多进制输出
7.1.2 分解栈元素
7.2 递归代码和运行栈
7.3 栈的实现
7.3.1 miniStack类的实现
7.3.2 STL stack类的实现(选学)
7.4 后缀表达式
7.4.1 后缀计算
7.4.2 postfixEval类
7.5 实例研究:中缀表达式计算
7.5.1 中缀表达式的特征
7.5.2 中缀到后缀的转换:算法设计
7.5.3 中缀转换为后缀:对象设计
7.5.4 infix2Postfix类的实现
7.6 本章小结
7.7 本章使用的类
7.8 复习题
7.9 书面作业
7.10 上机题
7.11 项目设计
第8章 队列和优先级队列
8.1 队列ADT
8.2 基数排序
8.3 实现miniQueue类
8.4 实例研究:时间驱动的模拟
8.4.1 模拟程序设计
8.4.2 模拟程序的具体实现
8.5 用数组实现队列
8.5.1 设计有界队列
8.5.2 有界队列的实现
8.6 优先级队列
8.6.1 优先级队列ADT
8.6.2 优先级队列排序
8.6.3 公司内的支持服务
8.7 本章小结
8.8 本章使用的类和库
8.9 复习题
8.10 书面作业
8.11 上机题
8.12 项目设计
第9章 链表
9.1 链表结点
9.1.1 链表结点类
9.1.2 添加和删除结点
9.2 建立链表
9.2.1 定义单向链表
9.2.2 在链表表头插入结点
9.2.3 在链表表头删除结点
9.2.4 删除特定的结点
9.3 处理链表表尾
9.4 用链表实现队列
9.4.1 linkedQueue类
9.4.2 实现linkedQueue类
9.5 双向链表
9.5.1 dnode对象
9.5.2 双向循环链表
9.6 更新双向链表
9.6.1 insert()函数
9.6.2 erase()函数
9.7 约瑟夫问题
9.8 miniList类
9.8.1 miniList类的私有成员
9.8.2 miniList类的构造函数和析构函数
9.8.3 处理表两端元素的函数
9.8.4 miniList的选代器
9.8.5 miniList类成员函数begin()和end()
9.8.6 miniList类的通用插入函数
9.9 选择顺序容器
9.10 本章小结
9.11 本章使用的类和库
9.12 复习题
9.13 书面作业
9.14 上机题
9.15 项目设计
第10章 二叉树
10.1 树结构
10.1.1 术语
10.1.2 二叉树
10.2 二叉树结点
10.3 二叉树遍历算法
10.3.1 递归的树遍历
10.3.2 迭代层次遍历
10.4 使用树遍历算法
10.4.1 叶结点计数
10.4.2 计算树的深度
10.4.3 复制二叉树
10.4.4 删除树结点
10.4.5 显示二叉树
10.5 二叉搜索树
10.5.1 二叉搜索树概述
10.5.2 创建二叉搜索树
10.5.3 二叉搜索树中的数据查找
10.5.4 二叉搜索树的删除
10.5.5 二叉搜索树类
10.5.6 访问和更新操作
10.6 二叉搜索树的应用
10.6.1 应用:消除重复项
10.6.2 应用:录像带商店
10.7 stree类的实现
10.7.1 stree类数据成员
10.7.2 构造函数、析构函数和赋值运算符
10.7.3 更新操作
10.7.4 二叉搜索树的算法复杂度
10.8 stree迭代器(选学)
10.9 本章小结
10.10 本章使用的类和库
10.11 复习题
10.12 书面作业
10.13 上机题
10.14 项目设计
第11章 关联容器
11.1 关联容器概述
11.1.1 关联容器的种类
11.1.2 STL关联容器
11.1.3 实现关联容器
11.2 集合
11.2.1 使用迭代器显示容器元素
11.2.2 集合的访问和更新函数
11.2.3 简单的拼写检查程序
11.2.4 应用:埃拉托斯特尼筛法
11.2.5 集合运算
11.2.6 应用:更新计算机账号
11.3 映射
11.3.1 map类接口
11.3.2 映射的操作函数
11.3.3 映射的下标运算符
11.3.4 实例学习:单词统计
11.4 多重集
11.5 实现集合和映射
11.5.1 实现miniSet的操作函数
11.5.2 miniMap类
11.5.3 实现miniMap类
11.5.4 miniMap的下标运算符
11.6 本章小结
11.7 本章使用的类和库
11.8 复习题
11.9 书面作业
11.10 上机题
11.11 项目设计
第12章 高级关联结构
12.1 哈希法
12.2 设计哈希函数
12.2.1 函数对象
12.2.2 函数对象举例
12.2.3 整型哈希函数
12.2.4 字符串哈希函数
12.2.5 定制哈希函数
12.3 哈希表
12.3.1 线性探测开放寻址法
12.3.2 独立表链地址法
12.4 hash类
12.4.1 应用:使用哈希表
12.4.2 hash类的实现
12.4.3 实现哈希迭代器
12.4.4 无序关联容器
12.5 哈希表的性能
12.6 2-3-4树
12.6.1 2-3-4树的插入算法
12.6.2 2-3-4树操作函数的时间复杂度
12.7 红黑树
12.7.1 红黑树的属性
12.7.2 向红黑树中添加结点
12.7.3 构造红黑树
12.7.4 查找算法的时间复杂度(选学)
12.7.5 从红黑树中删除结点
12.8 rbtree类
12.8.1 rbtree类的私有部分
12.8.2 拆分4-结点
12.8.3 insert()操作函数
12.9 本章小结
12.10 本章用到的类和库
12.11 复习题
12.12 书面作业
12.13 上机题
12.14 项目设计
第13章 继承和抽象类
13.1 C++中的继承
13.1.1 声明员工层次关系
13.1.2 派生类的构造函数
13.1.3 实现成员函数
13.2 图形层次
13.2.1 circleShape类
13.2.2 其他图形类和文本类
13.2.3 polyShape类的实现
13.3 图形系统
13.4 安全向量
13.5 有序表
13.6 多态属性和虚函数
13.6.1 动态绑定
13.6.2 应用:用多态性机制编写支付员工薪金的程序
13.6.3 C++的多态实现
13.6.4 虚函数和析构函数
13.7 抽象类
13.7.1 抽象类接口
13.7.2 栈接口
13.8 本章小结
13.9 本章使用的类和库
13.10 复习题
13.11 书面作业
13.12 上机题
13.13 项目设计
第14章 堆、2进制文件和位组
14.1 基于数组的二叉树
14.2 堆
14.2.1 堆的插入操作
14.2.2 从堆中删除元素
14.2.3 堆排序
14.2.4 向量堆化
14.3 优先级队列的实现
14.4 2进制文件
14.4.1 文件结构
14.4.2 直接读写文件
14.4.3 读写2进制文件
14.4.4 应用:银行账户记录
14.5 位组
14.5.1 bitVector类
14.5.2 实现bitVector类
14.6 实例研究:霍夫曼压缩
14.6.1 创建霍夫曼树
14.6.2 霍夫曼压缩的实现
14.6.3 霍夫曼解压缩
14.7 本章小结
14.8 本章使用的类和库
14.9 复习题
14.10 书面作业
14.11 上机题
14.12 项目设计
第15章 递归算法
15.1 分而治之算法
15.1.1 创建标尺
15.1.2 归并排序
15.1.3 快速排序
15.1.4 排序算法的比较
15.1.5 应用:搜索第k大的元素
15.2 组合学
15.2.1 查找所有子集
15.2.2 排列
15.3 动态编程
15.3.1 自顶向下的动态编程
15.3.2 应用:组合
15.3.3 自底向上动态编程
15.3.4 背包问题
15.4 回溯法:八皇后问题
15.4.1 问题分析
15.4.2 程序设计
15.4.3 显示棋盘
15.4.4 八皇后问题实例分析
15.5 本章小结
15.6 本章使用的类和库
15.7 复习题
15.8 书面作业
15.9 上机题
15.10 项目设计
第16章 图
16.1 图论术语
16.1.1 有向图
16.1.2 加权图
16.2 图类
16.2.1 图的API清单
16.2.2 图的表示
16.3 图类设计
16.3.1 顶点信息表示
16.3.2 顶点映射和Vinfo表
16.3.3 图类声明
16.3.4 图类的实现
16.4 图的遍历算法
16.4.1 广度优先搜索算法
16.4.2 深度优先访问算法
16.4.3 深度优先搜索
16.5 图遍历的应用
16.5.1 无环图
16.5.2 拓扑排序
16.5.3 强连通分量
16.6 图的最小化算法
16.6.1 最短路径算法
16.6.2 Dijkstra最小路径算法
16.6.3 最小生成树
16.7 本章小结
16.8 本章使用的类和库
16.9 复习题
16.10 书面作业
16.11 上机题
16.12 项目设计
猜您喜欢