第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 前進