第1章 緒論
1.1 數據結構的必要性
1.1.1 數值計算
1.1.2 非數值計算
1.1.3 數據結構的作用和地位
1.2 基本概念和術語
1.3 算法和算法分析
1.3.1 算法
1.3.2 算法設計的要求
1.3.3 算法效率的度量
1.3.4 算法的存儲空間需求
第2章 線性表
2.1 線性表的概念和抽象數據類型
2.1.1 線性表的概念
2.1.2 線性表的抽象數據類型定義
2.2 線性表的順序表示和實現
2.2.1 順序表的定義
2.2.2 順序表的操作及應用
2.3 線性表的鏈式表示和實現
2.3.1 線性鏈表
2.3.2 線性鏈表的綜合操作
2.3.3 雙循環(huán)鏈表簡介
第3章 棧和隊列
3.1 棧及其基本運算
3.1.1 棧的基本概念
3.1.2 棧的抽象數據類型定義
3.2 棧類型的實現
3.2.1 棧的順序存儲結構
3.2.2 兩個棧共享存儲空間
3.2.3 棧的鏈式存儲結構
3.2.4 順序棧和鏈式棧的比較
3.3 棧的應用舉例
3.3.1 數制轉換
3.3.2 括號匹配的檢驗
3.3.3 行編輯
3.3.4 子程序的調用和返回
3.3.5 棧與遞歸的實現
3.3.6 漢諾塔
3.4 隊列及基本運算
3.5 隊列的實現
3.5.1 隊列的鏈式表示和實現——鏈隊列
3.5.2 隊列的順序表示和實現——循環(huán)隊列
3.6 隊列的應用舉例
第4章 串
4.1 串類型的定義
4.1.1 串的概念
4.1.2 串的輸入和輸出
4.1.3 串的基本操作
4.2 串的存儲表示和操作算法
4.2.1 串的順序存儲結構
4.2.2 串的堆存儲結構——堆串
4.2.3 串的塊鏈存儲結構——塊鏈串
4.3 串的模式匹配算法
4.3.1 樸素字符串匹配算法
4.3.2 KMP算法
第5章 數組和廣義表
5.1 數組的定義
5.1.1 數組的基本概念
5.1.2 數組的抽象數據類型定義
5.2 數組的順序表示和實現
5.2.1 數組的順序存儲方式
5.2.2 多維數組的尋址方式
5.2.3 數組的基本操作
5.3 矩陣的壓縮存儲
5.3.1 特殊矩陣
5.3.2 稀疏矩陣
5.4 廣義表的定義
5.4.1 廣義表的圖形表示
5.4.2 廣義表的主要特性
5.4.3 廣義表的主要操作
5.4.4 廣義表的抽象數據類型
5.5 廣義表的存儲結構
5.6 m元多項式的表示
5.7 廣義表的遞歸算法
5.7.1 求廣義表的深度
5.7.2 復制廣義表
5.7.3 建立廣義表的存儲結構
第6章 樹和二叉樹
6.1 樹的定義和基本術語
6.2 二叉樹
6.2.1 二叉樹的定義
6.2.2 二叉樹的性質
6.2.3 二叉樹的存儲結構
6.3 遍歷二叉樹和線索二叉樹
6.3.1 遍歷二叉樹的幾種方法
6.3.2 二叉樹的創(chuàng)建及遍歷
6.3.3 線索二叉樹
6.4 樹和森林
6.4.1 樹的存儲結構
6.4.2 森林與二叉樹的轉換
6.4.3 樹和森林的遍歷
6.5 哈夫曼樹及其應用
第7章 圖
7.1 圖的定義和術語
7.1.1 圖的抽象數據類型定義
7.1.2 圖的定義
7.1.3 圖的基本術語
7.2 圖的存儲結構
7.2.1 鄰接矩陣
7.2.2 鄰接表
7.2.3 十字鄰接表
7.2.4 鄰接多重表
7.3 圖的遍歷
7.3.1 深度優(yōu)先遍歷
7.3.2 廣度優(yōu)先遍歷
7.4 圖的連通性問題
7.4.1 無向圖的連通分量和生成樹
7.4.2 最小生成樹
7.5 最短路徑
7.5.1 最短路徑的概念
7.5.2 從一頂點到其余各頂點的最短路徑
7.5.3 每對頂點間的最短路徑
第8章 查找
8.1 靜態(tài)查找表
8.1.1 靜態(tài)查找表的抽象數據類型
8.1.2 順序表的查找
8.1.3 折半查找
8.1.4 分塊查找
8.2 動態(tài)查找表
8.2.1 動態(tài)查找的抽象數據類型
8.2.2 二叉排序樹及其查找過程
8.2.3 二叉排序樹刪除結點
8.2.4 平衡二叉樹
8.2.5 B-樹
8.3 哈希表
8.3.1 哈希表的定義
8.3.2 哈希函數的構造方法
8.3.3 處理沖突的方法
第9章 內部排序
9.1 排序的基本概念
9.2 插入排序
9.2.1 直接插入排序
9.2.2 希爾排序
9.3 交換排序
9.4 選擇排序
9.5 歸并排序和基數排序
9.5.1 歸并排序
9.5.2 基數排序
參考文獻