本书共14章,分几个层次不断深入。前3章首先对Java语言的基础知识以及面向对象的一些基本概念作简要说明。从第4章开始介绍几种常见的数据结构(链表、栈、树、散列和图等)。在介绍各类数据结构的过程中,全书从数据结构的视角又对通用程序设计的基本思路、软件重构的基本思想作了一定的说明。
全书内容翔实,结构清晰合理,是一本有关数据结构的优秀教材,可作为大专院校计算机及其相关专业的教材和参考书。对于计算机科学与工程领域的从业人员而言,本书也是一本不可多得的参考书。
本书系统地介绍各种常用的数据结构,对基本概念、基本原理和基本方法以及相关的算法设计做了深入浅出、详细和通俗的讲解。全书采用面向对象的Java语言对算法进行描述,将传统的数据结构的内容与面向对象的思想和技术完全融合,使得讲解更加贴近自然。
全书内容翔实,结构清晰合理,可作为大专院校计算机及其相关专业的有关数据结构的教材和参考书,也是计算机科学与工程领域的从业人员不可多得的一本参考书。
译者序
前言
第1章 软件开发周期
1.1规格说明、设计和实现
1.2运行时间分析
1.3测试和调试
本章小结
自测练习参考答案
第2章 Java类和信息隐藏
2.1类及其成员
2.2类的使用
2.3包
2.4参数、equals方法和clone
本章小结
自测练习参考答案
程序设计项目
第3章 集合类
3.1 Java数组简介
3.2整数包的ADT
3.3程序设计项目:序列ADT
3.4程序设计项目:多项式
本章小结
自测练习参考答案
程序设计项目
第4章 链表
4.1链表基础
4.2操作结点的方法
4.3操作整个链表
4.4使用链表实现的包ADT
4.5程序设计项目:使用链表实现的
序列ADT
4.6复杂链表
本章小结
自测练习参考答案
程序设计项目
第5章 通用程序设计
5.1 Java的Object类型
5.2 Object方法和通用方法
5.3通用类
5.4通用结点
5.5接口和迭代器
5.6实现Iterable接口的通用包类(选读)
5.7 Javag}Collection和Map接口简介
(选读)
本章小结
自测练习参考答案
程序设计项目
第6章 栈
6.1栈简介
6.2栈的应用
6.3栈ADT的实现
6.4更复杂的栈应用
本章小结
自测练习参考答案
程序设计项目
第7章 队列
7.1队列简介
7.2队列的应用
7.3 Queue类的实现
7.4优先队列
本章小结
自测练习参考答案
程序设计项目
第8章 递归思想
8.1递归方法
8.2递归的研究:分形和迷宫
8.3递归的推导
本章小结
自测练习参考答案
程序设计项目
第9章 树
9.1树的简介
9.2树的表示方法
9.3二叉树结点类
9.4树的遍历
9.5二叉查找树
本章小结
自测练习参考答案
程序设计项目
第10章 树项目
10.1堆
10.2 B树
10.3 Java$t树的支持
10.4树、日志和时间复杂度分析
本章小结
自测练习参考答案
程序设计项目
第11章 查找
11.1顺序查找和二分查找
11.2开型寻址散列
1 1.3使用Java的Hashtable类
11.4链式散列
11.5散列的耗时分析
本章小结
自测练习参考答案
程序设计项目
第12章 排序
12.1二次排序算法
12.2递归排序算法
12.3一个使用堆的O(n log n)算法
本章小结
自测练习参考答案
程序设计项目
第13章 使用扩展类实现软件重用
13.1扩展类
13.2通用类型参数和继承
13.3模拟生态系统
13.4抽象类和Game类
本章小结
进阶阅读
自测练习参考答案
程序设计项目
第14章 图
14.1图的定义
14.2图的实现
14.3图遍历
14.4路径算法
本章小结
自测练习参考答案
程序设计项目
附录A Java的基本类型和算术溢出
附录B Java输入和输出
附录C 抛出和捕获Java异常
附录D Arraylist、Vector、Hashtable和
HashMap类
附录E 用于链表的结点类
附录F 一个用于包对象的类
附录G 深入大D表示法
附录H Javadoc
附录I 用于交互式测试的Applet