| ISBN | 出版时间 | 包装 | 开本 | 页数 | 字数 |
|---|---|---|---|---|---|
| 未知 | 暂无 | 暂无 | 未知 | 0 | 暂无 |
第1章 数据抽象:墙
1.1 面向对象的概念
1.1.1 面向对象分析与设计
1.1.2 面向对象解决方案的特征
1.2 获得更好的解决方案
1.2.1 内聚
1.2.2 耦合
1.3 规范
1.3.1 操作契约
1.3.2 特殊情况
1.3.3 抽象
1.3.4 信息隐藏
1.3.5 最小且完整的接口
1.4 抽象数据类型
1.4.1 设计ADT
1.4.2 涉及其他ADT的ADT
1.5 ADT包
1.5.1 确定行为
1.5.2 指定数据和操作
1.5.3 ADT的模板接口
1.5.4 使用ADT包
C++片段1 C++类
C1.1待解决的问题
C1.1.1私有数据字段
C1.1.2 构造函数和析构函数
C1.1.3 方法
C1.1.4 防止编译错误
C1.2 实现解决方案
C1.3 模板
C1.4 继承
C1.4.1 基类和派生类
C1.4.2 重写基类方法
C1.5 虚方法和抽象类
C1.5.1 虚方法
C1.5.2 抽象类
第2章 递归:镜子
2.1 递归解决方案
2.2 返回值的递归
2.2.1 递归值函数:n的阶乘
2.2.2 箱式跟踪
2.3 执行动作的递归
2.4递归与数组
2.4.1 逆置数组项
2.4.2 折半查找
2.4.3 查找数组中的最大值
2.4.4 查找数组中第k个最小值
2.5 组织数据
2.6 更多示例
2.6.1 Fibonacci数列(兔子繁殖)
2.6.2 组织游行队伍
2.6.3 从n个事物中选出k个
2.7 递归和效率
第3章 基于数组的实现
3.1 办法
3.1.1 核心方法
3.1.2 使用大小固定的数组
3.2 ADT包的基于数组的实现
3.2.1 头文件
3.2.2 定义核心方法
3.2.3 测试核心方法
3.2.4 实现更多方法
3.2.5 删除项的方法
3.2.6 测试
3.3 在实现中使用递归
3.3.1 getlndexOf方法
3.3.2 getFrequencyOf方法
C++片段2指针、多态和内存分配
C2.1 变量的内存分配和方法的前期绑定
C2.2 需要解决的问题
C2.3 指针与程序的自由存储
C2.3.1 释放内存
C2.3.2 避免内存泄漏
C2.3.3 避免悬挂指针
C2.4 虚方法和多态
C2.5 数组的动态分配
第4章 基于链表的实现
4.1 预备知识
4.2 ADT包的基于链表的实现
4.2.1 头文件
4.2.2 定义核心方法
4.2.3 实现更多方法
4.3 在基于链表的实现中使用递归
4.4 测试多个ADT实现
4.5 比较基于数组的实现和基于链表的实现
第5章 作为问题求解技术的递归
5.1 定义语言
5.1.1 语法知识基础
5.1.2 两种简单的语言
5.2 代数表达式
5.2.1 代数表达式的类型
5.2.2 前缀表达式
5.2.3 后缀表达式
5.2.4 完全括号化表达式
5.3 回溯
5.3.1 查找航线
5.3.2 八皇后问题
5.4 递归和数学归纳法的关系
5.4.1 递归阶乘函数的正确性
5.4.2 Hanoi塔的工作量
第6章 栈
6.1 ADT栈
6.1.1 在设计解决方案期间开发ADT
6.1.2 ADT栈的规范
6.2 栈的简单应用
6.2.1 检查括号匹配
6.2.2 识别语言中的字符串
6.3 栈在代数表达式中的应用
6.3.1 计算后缀表达式
6.3.2 中缀表达式与后缀表达式的等价转换
6.4 使用栈查找航班图
6.5 栈和递归的关系
C++片段3异常
C3.1 背景知识
C3.2 断言
C3.3 抛出异常
C3.4 处理异常
C3.4.1 多个catch块
C3.4.2 未捕获的异常
C3.5 程序员定义的异常类
第7章 实现ADT栈
7.1 基于数组的实现
7.2 基于链表的实现
7.3 在实现中使用异常
第8章 列表
8.1 指定ADT列表
8.2 使用列表操作
8.3 ADT列表的模板接口
第9章 实现列表
9.1 基于数组的ADT列表实现
9.1.1 头文件
9.1.2 实现文件
9.2 基于链表的ADT列表实现
9.2.1 头文件
9.2.2 实现文件
……
第10章 算法的效率
第11章 排序算法及其效率
第12章 有序表及其实现
第13章 队列和优先队列
第14章 队列和优先队列的实现
第15章 树
第16章 树的实现
第17章 堆
第18章 字典及其实现
第19章 平衡查找树
第20章 图
第21章 外部存储中的数据处理