前言
第1章 概論
1.1 基本概念和術語
1.1.1 邏輯結構
1.1.2 存儲結構
1.2 算法的描述與分析
1.2.1 算法描述
1.2.2 算法分析
1.2.3 時間復雜度
1.2.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.4 單向循環(huán)鏈表
2.5 雙向循環(huán)鏈表
2.5.1 雙向鏈表
2.5.2 雙向循環(huán)鏈表
本章小結
習題
第3章 棧和隊列
3.1 棧
3.1.1 棧的定義與基本運算
3.1.2 順序棧
3.1.3 鏈棧
3.2 隊列
3.2.1 隊列的定義及基本運算
3.2.2 順序隊列
3.2.3 鏈隊列
3.3 棧和隊列的應用
3.3.1 棧的應用
3.3.2 隊列的應用
本章小結
習題
第4章 串
4.1 串及其運算
4.1.1 串的基本概念
4.1.2 串的基本運算
4.2 串的存儲結構
4.2.1 串的順序存儲
4.2.2 串的鏈式存儲
4.3 串運算的實現(xiàn)
4.4 串的模式匹配運算
4.4.1 有回溯的模式匹配算法(BF算法)
4.4.2 無回溯的模式匹配算法(KMP算法)
本章小結
習題
第5章 數(shù)組和廣義表
5.1 數(shù)組
5.1.1 數(shù)組的定義
5.1.2 數(shù)組的順序存儲
5.2 矩陣的壓縮存儲
5.2.1 特殊矩陣
5.2.2 稀疏矩陣
5.3 廣義表
5.3.1 廣義表的定義與運算
5.3.2 廣義表的存儲
本章小結
習題
第6章 樹
6.1 樹的概念
6.1.1 樹的定義
6.1.2 樹的基本術語
6.1.3 樹的基本操作
6.2 二叉樹
6.2.1 二叉樹的定義
6.2.2 二叉樹的性質
6.2.3 二叉樹的存儲結構
6.3 遍歷二叉樹
6.3.1 二叉樹遍歷方法
6.3.2 二叉樹遍歷的遞歸算法
6.3.3 二叉樹遍歷的非遞歸算法
6.4 二叉樹的遞歸編程應用
6.5 線索二叉樹
6.5.1 線索二叉樹的概念及存儲
6.5.2 有關線索二叉樹的算法
6.6 樹和森林
6.6.1 樹的存儲結構
6.6.2 樹、森林和二叉樹的轉換
6.7 哈夫曼樹及哈夫曼編碼
本章小結
習題
第7章 圖
7.1 圖的基本概念
7.1.1 圖的定義
7.1.2 圖的基本術語
7.2 圖的存儲結構
7.2.1 鄰接矩陣
7.2.2 鄰接表
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.6 拓撲排序
7.6.1 頂點活動網
7.6.2 拓撲排序
本章小結
習題
第8章 排序
8.1 基本概念
8.2 插入排序
8.2.1 直接插入排序
8.2.2 希爾排序
8.3 交換排序
8.3.1 冒泡排序
8.3.2 快速排序
8.4 選擇排序
8.4.1 直接選擇排序
8.4.2 堆排序
8.5 歸并排序
8.6 排序方法的比較和選擇
8.6.1 排序方法的比較
8.6.2 排序方法的選擇山
本章小結
習題
第9章 查找
9.1 基本概念
9.2 線性表的查找
9.2.1 順序查找
9.2.2 二分查找
9.2.3 分塊查找
9.3 樹上的查找
9.4 散列查找
9.4.1 基本概念
9.4.2 散列函數(shù)的構造方法
9.4.3 沖突處理方法
9.4.4 散列查找及分析
本章小結
附錄
參考文獻