第1章 软件工程
1.1 软件开发
1.2 软件质量
1.3 软件开发生命期模型
1.4 统一建模语言
1.5 错误的处理
1.6 算法的分析
1.7 软件工程和数据结构
第2章 集合
2.1 本章简介
2.2 袋集合
2.3 使用袋的例子:bingo
2.4 袋的数组实现
2.5 分析袋的数组实现
第3章 链式结构
3.1 链式引用
3.2 管理链表
3.3 无链接的元素
3.4 袋的链式实现
3.5 分析袋的链式实现
第4章 递归
4.1 递归思想
4.2 递归编程
4.3 使用递归
4.4 分析递归算法
第5章 查找与排序
5.1 查找
5.2 排序
第6章 堆栈
6.1 堆栈ADT
6.2 使用堆栈:计算后缀表达式
6.3 使用堆栈:模拟递归
6.4 堆栈的链式实现
6.5 堆栈的数组实现
6.6 实现堆栈:java.util.Stack类
6.7 分析堆栈的实现
第7章 队列
7.1 队列ADT
7.2 使用队列:代码键
7.3 使用队列:模拟售票器
7.4 使用队列:基数排序法
7.5 队列的链式实现
7.6 队列的数组实现
7.7 使用循环数组来实现队列
7.8 队列实现的分析
第8章 链表
8.1 链表ADT
8.2 使用有序链表:制订赛程
8.3 使用索引链表:Josephus问题
8.4 链表的数组实现
8.5 链表的链式实现
8.6 分析链表的实现
第9章 树
9.1 树
9.2 树的实现策略
9.3 树的遍历
9.4 实现二叉树
9.5 使用二叉树:表达式树
第10章 二叉查找树
10.1 二叉查找树
10.2 二叉查找树的链式实现
10.3 使用二叉查找树实现有序链表
10.4 平衡二叉查找树
10.5 实现二叉查找树:AVL树
10.6 实现二叉查找树:红黑树
10.7 实现二叉查找树:Java集合API
第11章 堆
11.1 堆
11.2 使用堆:堆排序
11.3 使用堆:优先队列
11.4 堆的链式实现
11.5 堆的数组实现
11.6 分析堆的实现
第12章 多叉查找树
12.1 合并树的概念
12.2 2-3树
12.3 2-4树
12.4 B-树
12.5 B-树的实现策略
第13章 散列
13.1 散列
13.2 散列函数
13.3 解决冲突
13.4 删除哈希表中的元素
13.5 Java集合API中的哈希表
第14章 图
14.1 无向图
14.2 有向图
14.3 网络
14.4 图的通用算法
14.5 图的实现策略
附录A Java面向对象概念
A.1 面向对象简介
A.2 使用对象
A.3 类库和包
A.4 对象的状态和行为
A.5 类
A.6 封装
A.7 构造函数
A.8 方法重载
A.9 再谈引用
A.10 static修饰符
A.11 包装类
A.12 接口
A.13 继承
A.14 类层次体系
A.15 多态
A.16 异常
附录B Java类库
AbstractButton(javax.swing)
ActionEvent(java.awt.event)
AdjustmentEvent(java.awt.event)
Applet(java.applet)
ArrayList(java.util)
AWTEvent(java.awt)
BigDecimal(java.math)
BigInteger(java.math)
BitSet(java.util)
Boolean(java.lang)
BorderFactory(javax.swing)
BorderLayout(java.awt)
Box(java.swing)
BoxLayout(java.swing)
BufferedReader(java.io)
BufferedWriter(java.io)
ButtonGroup(java.swing)
Byte(java.lang)
Calendar(java.util)
CardLayout(java.awt)
Character(java.lang)
Class(java.lang)
Color(java.awt)
Component(java.awt)
ComponentAdapter(java.awt.event)
ComponentEvent(java.awt.event)
Container(java.awt)
ContainerAdapter(java.awt.evnet)
ContainerEvent(java.awt.enent)
Cursor(java.awt)
Date(java.util)
DateFormat(java.text)
DateFormatSymbols(java.text)
DecimalFormat(java.text)
DecimalFormatSymbols(java.text)
Dimension(java.awt)
Double(java.lang)
Error(java.lang)
Event(java.awt)
Exception(java.lang)
Float(java.lang)
FlowLayout(java.awt)
FocusAdapter(java.awt.event)
FocusEvent(java.awt.event)
Font(java.awt)
FontMetrics(java.awt)
Format(java.text)
Graphics(java.awt)
GregorianCalendar(java.util)
GridBagConstraints(java.awt)
GridBagLayout(java.awt)
GridLayout(java.awt)
Hashtable(java.tuil)
Image(java.awt)
ImageIcon(java.swing)
InputEvent(java.awt.event)
InputStream(java.io)
InputStreamReader(java.io)
Insets(java.awt)
Integer(java.lang)
ItemEvent(java.awt.event)
JApplet(javax.swing)
JButton(javax.swing)
JCheckBox(javax.swing)
JCheckBoxMenuItem(javax.swing)
JColorChooser(javax.swing)
JComboBox(javax.swing)
JComponet(javax.swing)
JFileChooser(javax.swing)
JFrame(javax.swing)
JLabel(javax.swing)
JList(javax.swing)
JOptionPane(javax.swing)
JPanel(javax.swing)
PasswordField(javax.swing)
JRadioButton(javax.swing)
JScrollPane(javax.swing)
JSlider(javax.swing)
JTabbedPane(javax.swing)
JTextArea(javax.swing)
JTextField(javax.swing)
JToggleButton(javax.swing)
JToolTip(javax.swing)
KeyAdapter(java.awt.event)
KeyEvent(java.awt.event)
Locale(java.util)
Long(java.lang)
Math(java.lang)
MessageFormat(java.text)
MouseAdapter(java.awt.event)
MouseEvent(java.awt.event)
MouseMotionAdapter(java.awt.event)
Number(java.lang)
NumberFormat(java.text)
Object(java.lang)
ParsePosition(java.text)
Point(java.awt)
Polygon(java.awt)
PrintStream(java.io)
Random(java.util)
Rectangle(java.awt)
Short(java.lang)
SimpleDateFormat(java.text)
SimpleTimeZone(java.util)
Stack(java.util)
String(java.lang)
StringBuffer(java.lang)
StringTokenizer(java.util)
System(java.lang)
SystemColor(java.awt)
Thread(java.lang)
Throwable(java.lang)
Timer(javax.swing)
TimeZone(java.util)
URL(java.net)
Vector(java.util)
Void(java.lang)
Window(java.awt)
WindowAdapter(java.awt.event)
WindowEvent(java.awt.event)
展开
这确是一本介绍Java数据结构的好书。为使读者能更好地阅读本书,各章在内容的安排上不仅从易到难,而且在组织形式上力求保持一致:对于每章所涉及的数据结构,都先介绍它们的概念,接着举例说明它们的用途,然后讨论如何实现它们,最后分析比较各种实现的效率。为方便读者的学习,书中所有例子的源代码都可下载( www.aw.com/cssupport)。
全书的翻译出版是集体工作的结晶。柳赐佳、周莎莎、施晓东、施惠琼、蔡桂凌、施琳琼、陈华、柳晁锦、柳晁惠、施卓成、张琼雯、张庭辉、方杰等负责全书的翻译工作,柳小艳、孔颂燕、梁锦伦等负责全书的审校工作,施金庭、柳聿荫、施群肖和缪彩珠等负责全书的录入和排版工作。全书最后由施平安负责统稿。
在翻译过程中,我们对书中出现的所有术语和难词难句都进行了仔细的推敲和研究,然而有些问题在译者本人的研究领域中也不曾遇到过,疏漏和争议之处在所难免,望广大读者提出宝贵的意见。
译者
2004年2月10日