第1章 综述
1.1 数据结构和算法能起到什么作用?
1.2 数据结构的概述
1.3 算法的概述
1.4 一些定义
1.5 面向对象编程
1.6 软件工程
1.7 对于C++程序员的Java
1.8 Java数据结构的类库
第2章 数组
2.1 Array专题Applet
2.2 Java中数组的基础知识
2.3 将程序划分成类
2.4 类接口
2.5 Ordered专题applet
2.6 有序数组的Java代码
2.7 对数
2.8 存储对象
2.9 大O表示法
2.10 为什么不用数组表示一切?
第3章 简单排序
3.1 如何排序?
3.2 冒泡排序
3.3 选择排序
3.4 插入排序
3.5 对象排序
3.6 几种简单排序之间比较
第4章 栈和队列
4.1 不同的结构类型
4.2 栈
4.3 队列
4.4 优先级队列
4.5 解析算术表达式
第5章
5.1 链结点(Link)
5.2 LinkList专题Applet
5.3 单链表
5.4 查找和删除指定链结点
5.5 双端链表
5.6 链表的效率
5.7 抽象数据类型
5.8 有序链表
5.9 双向链表
5.10 迭代器
第6章 递归
6.1 三角数字
6.2 阶乘
6.3 变位数
6.4 递归的二分查找
6.5 汉诺(Hanoi)塔问题
6.6 归并排序
6.7 消除递归
6.8 一些有趣的递归应用
第7章 高级排序
7.1 希尔排序
7.2 划分
7.3 快速排序
7.4 基数排序
第8章 二叉树
7.1 为什么使用二叉树?
7.2 树的术语
7.3 一个类比
7.4 二叉搜索树如何工作
7.5 查找节点
7.6 插入一个节点
7.7 遍历树
7.8 查找最大值和最小值
7.9 删除节点
7.10 二叉树的效率
7.11 用数组表示树
7.12 重复关键字
7.13 完整的tree.java程序
7.14 哈夫曼(Huffman)编码
第9章 红-黑树
9.1 本章讨论的方法
9.2 平衡树和非平衡树
9.3 使用RBTree专题applet
9.4 用专题applet做试验
9.5 旋转
9.6 插入一个新节点
9.7 删除
9.8 红-黑树的效率
9.9 红-黑树的实现
9.10 其他平衡树
第10章 2-3-4树和外部存储
10.1 2-3-4树的介绍
10.2 Tree234专题applet
10.3 2-3-4树的Java代码
10.4 2-3-4树和红-黑树
10.5 2-3-4树的效率
10.6 2-3树
10.7 外部存储
第11章 哈希表
11.1 哈希化简介
11.2 开放地址法
11.3 链地址法
11.4 哈希函数
11.5 哈希化和外部存储
11.6 哈希化和外部存储
第12章 堆
12.1 堆的介绍
12.2 Heap专题applet
12.3 堆的Java代码
12.4 基于树的堆
12.5 堆排序
第13章 图
13.1 图简介
13.2 搜索
13.3 最小生成树
13.4 有向图的拓扑排序
13.5 有向图的连通性
第14章 带权图
14.1 带权图的最小生成树
14.2 最短路径问题
14.3 每一对顶点之间的最短路径问题
14.4 效率
15.5 难题
第15章 应用场合
15.1 通用数据结构
15.2 专用数据结构
15.3 排序
15.4 图
15.5 外部存储
15.6 前进