第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)