第Ⅰ部分 问题求解技术
第1章 Java编程基础
1.1 程序结构
1.2 Java基础知识
1.3 分支结构
1.4 循环结构
1.5 有用的Java类
1.6 Java异常
1.7 文本输入和输出
1.8 文件输入和输出
1.9 小结
1.10 提示
第2章 编程原理与软件工程
2.1 问题求解与软件工程
2.2 面向对象设计
2.3 关键编程问题
2.4 小结
2.5 提示
2.6 自我测试题
2.7 练习题
2.8 编程问题
第3章 递归:镜子
3.1 递归解决方案
3.2 计数
3.3 数组查找
3.4 组织数据
3.5 递归与效率
3.6 小结
3.7 提示
3.8 自我测试题
3.9 练习题
3.10 编程问题
第4章 数据抽象:墙
4.1 抽象数据类型
4.2 指定ADT
4.3 实现ADT
4.4 小结
4.5 提示
4.6 自我测试题
4.7 练习题
4.8 编程问题
第5章 链表
5.1 预备知识
5.2 链表编程
5.3 链表的各种变体
5.4 清单应用程序
5.5 Java集合框架
5.6 小结
5.7 提示
5.8 自我测试题
5.9 练习题
5.10 编程问题
第Ⅱ部分 使用抽象数据类型解决问题
第6章 递归问题求解技术
6.1 回溯
6.2 定义语言
6.3 递归和数学归纳法的关系
6.4 小结
6.5 提示
6.6 自我测试题
6.7 练习题
6.8 编程问题
第7章 栈
7.1 ADT栈
7.2 ADT栈的简单应用
7.3 ADT栈的实现
7.4 应用:代数表达式
7.5 应用:查找问题
7.6 栈和递归的关系
7.7 小结
7.8 提示
7.9 自我测试题
7.10 练习题
7.11 编程问题
第8章 队列
8.1 ADT队列
8.2 ADT队列的简单应用
8.3 实现ADT队列
8.4 基于位置的ADT总览
8.5 模拟应用
8.6 小结
8.7 提示
8.8 自我测试题
8.9 练习题
8.10 编程问题
第9章 高级Java主题
9.1 继承
9.2 动态绑定和抽象类
9.3 ADT列表和有序表
9.4 Java泛型
9.5 迭代器
9.6 小结
9.7 提示
9.8 自我测试题
9.9 练习题
9.10 编程问题
第10章 算法的效率和排序
10.1 确定算法的效率
10.2 排序算法及其效率
10.3 小结
10.4 提示
10.5 自我测试题
10.6 练习题
10.7 编程问题
第11章 树
11.1 术语
11.2 ADT二叉树
11.3 ADT二叉查找树
11.4 一般树
11.5 小结
11.6 提示
11.7 自我测试题
11.8 练习题
11.9 编程问题
第12章 表和优先队列
12.1 ADT表
12.2 ADT优先队列: ADT表的变体
12.3 JCF中的表和优先队列
12.4 小结
12.5 提示
12.6 自我测试题
12.7 练习题
12.8 编程问题
第13章 表的高级实现方案
13.1 平衡查找树
13.2 散列
13.3 按多种形式组织数据
13.4 小结
13.5 提示
13.6 自我测试题
13.7 练习题
13.8 编程问题
第14章 图
14.1 术语
14.2 将图作为ADT
14.3 图的遍历
14.4 图的应用
14.5 小结
14.6 提示
14.7 自我测试题
14.8 练习题
14.9 编程问题
第15章 外部方法
15.1 了解外部存储
15.2 排序外部文件的数据
15.3 外部表
15.4 小结
15.5 提示
15.6 自我测试题
15.7 练习题
15.8 编程练习
附录A Java与C++的区别
附录B Unicode字符代码
附录C Java资源
附录D 数学归纳法
附录E Java操作符
附录F 术语表
附录G 自我测试题答案