1. 緒論 1.1 資料結構的基本概念 1.2 資料結構的内容 1.3 算法 1.4 算法描述 1.5 算法性能評價 1. 算法的時間性能分析 2. 算法的空間性能分析 3. 算法性能選擇 1.6 資料結構與C語言表示 1. 資料結構與程式設計的關聯性 2. 結構化程式設計與函數的子產品化 3. 面向對象與抽象資料類型 4. 算法描述規範與設計風格 1.7 關于資料結構 2. 線性表 2.1 線性表的概念及其抽象資料類型定義 1. 線性表的邏輯結構 2. 線性表的抽象資料類型定義 2.2 線性表的順序存儲 1. 線性表的順序存儲結構 2. 線性表順序存儲結構上的基本運算 2.3 線性表的鍊式存儲 1. 單連結清單 2. 單連結清單上的基本運算 3. 循環連結清單 4. 雙向連結清單 5. 靜态連結清單 2.4 線性表的應用 — 一進制多項式的表示及相加 1. 順序表與連結清單的比較 2. 線性表鍊式存儲方式的比較 3. 限定線性表 — 棧與隊列 3.1 棧 1. 定義 2. 表示和實作 3. 應用舉例 4. 棧和遞歸的實作 3.2 隊列 1. 定義 2. 表示和實作 3. 應用舉例 4. 串 4.1 基本概念 4.2 存儲實作 1. 定長順序串 2. 堆串 3. 塊鍊串 4.3 串的應用舉例:簡單的行編輯器 5. 數組與廣義表 5.1 資料的定義與運算 5.2 數組的順序存儲與實作 5.3 特殊矩陣的壓縮存儲 1. 規律分布的特殊矩陣 2. 稀疏矩陣 5.4 廣義表 1. 概念 2. 存儲結構 3. 操作實作 6. 樹與二叉樹 6.1 樹的定義與基本術語 6.2 二叉樹 1. 二叉樹的定義與基本操作 2. 二叉樹的性質 3. 二叉樹的存儲結構 6.3 二叉樹的周遊與線索化 1. 二叉樹的周遊 2. 周遊算法應用 3. 基于棧的遞歸消除 4. 線索二叉樹 5. 由周遊序列确定二叉樹 6.4 樹、森林和二叉樹的關系 1. 樹的存儲結構 2. 樹、森林與二叉樹的互相轉換 3. 樹與森林的周遊 6.5 哈夫曼樹及其應用 1. 哈夫曼樹 2. 哈夫曼編碼 6.6 并查集與等價類劃分 7. 圖 7.1 圖的定義與基本術語 1. 圖的定義 2. 基本術語 7.2 圖的存儲結構 1. 鄰接矩陣表達法 2. 鄰接表表示法 3. 十字連結清單 4. 鄰接多重表 7.3 圖的周遊 1. 深度優先搜尋 2. 廣度優先搜尋 7.4 圖的應用 1. 圖的連通性問題 2. 有向無環圖的應用 3. 最短路徑問題 8. 查找 8.1 基本概念 8.2 基于線性表的查找法 1. 順序查找法 2. 折半查找法 3. 分塊查找法 8.3 基于樹的查找法 1. 二叉排序樹 2. 平衡二叉排序樹 3. B樹 8.4 計算式查找法 — 哈希法 1. 哈希函數的構造方法 2. 處理沖突的方法 3. 哈希表的查找過程 4. 哈希法性能分析 9. 内部排序 9.1 排序的基本概念 9.2 插入類排序 1. 直接插入排序 2. 折半插入排序 3. 希爾排序 9.3 交換類排序 1. 冒泡排序 2. 快速排序 9.4 選擇類排序 1. 簡單選擇排序 2. 樹形選擇排序 3. 堆排序 9.5 歸并排序 9.6 配置設定類排序 1. 多關鍵字排序 2. 鍊式基數排序 3. 基數排序的順序表實作 9.7 各種排序的方法綜合比較 10. 外部排序 10.1 外部排序的基本方法 1. 磁盤排序 2. 錄音帶排序