第1章緒論
1.1 數據結構的概念
1.1.1 為什麼要學習數據結構
1.1.2 相關概念和術語
1.1.3 數據結構課程的內容
1.2 數據類型和抽像數據類型
1.2.1 數據類型
1.2.2 抽像數據類型
1.3 算法和算法分析
1.3.1 算法特性
1.3.2 算法描述
1.3.3 算法性能分析與度量
小結
習題
第2章 線性表
2.1 線性表的邏輯結構
2.1.1 線性表的定義
2.1.2 線性表的基本操作
2.2 線性表的順序存儲及運算實現
2.2.1 順序表
2.2.2 順序表上基本運算的實現
2.2.3 順序表應用舉例
2.3 線性表的鏈式存儲和運算實現
2.3.1 單鏈表
2.3.2 單鏈表上基本運算的實現
2.3.3 循環鏈表
2.3.4 雙向鏈表
2.3.5 靜態鏈表
2.3.6 間接尋址
2.3.7 單鏈表應用舉例
2.4 順序表和鏈表的比較
小結
習題
第3章 棧和隊列
3.1 棧
3.1.1 棧的定義及基本運算
3.1.2 棧的存儲實現和運算實現
3.1.3 棧的應用舉例
3.2 隊列
3.2.1 隊列的定義及基本運算
3.2.2 隊列的存儲實現及運算實現
3.2.3 隊列應用舉例
小結
習題
第4章 串
4.1 串及其基本運算
4.1.1 串的基本概念
4.1.2 串的基本運算
4.2 串的定長順序存儲及基本運算
4.2.1 串的定長順序存儲
4.2.2 定長順序串的基本運算
4.2.3 模式匹配
4.3 串的堆存儲結構
4.3.1 串名的存儲映像
4.3.2 堆存儲結構
4.3.3 基於堆結構的串的基本運算實現
小結
習題
第5章 數組和廣義表
5.1 數組
5.1.1 一維數組
5.1.2 多維數組
5.1.3 數組的內存映像
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 廣義表基本操作的實現
小結
習題
第6章 二叉樹
6.1 二叉樹的定義與性質
6.1.1 二叉樹的基本概念
6.1.2 二叉樹的主要性質
6.2 二叉樹的基本操作與存儲實現
6.2.1 二叉樹的存儲
6.2.2 二叉樹的基本操作及實現
6.3 二叉樹的遍歷
6.3.1 二叉樹的遍歷方法及遞歸實現
6.3.2 二叉樹遍歷的非遞歸實現
6.3.3 由遍歷序列恢復二叉樹
6.3.4 不用棧的二叉樹遍歷的非遞歸方法
6.4 線索二叉樹
6.4.1 線索二叉樹的定義及結構
6.4.2 線索二叉樹的基本操作實現
6.5 二叉樹的應用舉例
6.5.1 查素
6.5.2 統計給定二叉樹中葉結點的數目
6.5.3 創建二叉樹的二叉鏈表存儲
6.5.4 表達式運算
6.6 哈夫曼樹
6.6.1 問題引入
6.6.2 哈夫曼樹的基本概念及其構造方法
6.6.3 哈夫曼樹的構造算法
6.6.4 哈夫曼編碼
小結
習題
第7章 樹與森林
7.1 樹的概念與表示
7.1.1 樹的定義及相關術語
7.1.2 樹的表示
7.2 樹的基本操作與存儲
7.2.1 樹的基本操作
7.2.2 樹的存儲結構
7.3 樹、森林與二叉樹的轉換
7.3.1 樹轉換為二叉樹
7.3.2 森林轉換為二叉樹
7.3.3 二叉樹轉換為樹和森林
7.4 樹和森林的遍歷
7.4.1 樹的遍歷
7.4.2 森林的遍歷
7.5 樹的應用舉例
7.5.1 判定樹
7.5.2 集合的表示
7.5.3 等價問題
小結
習題
第8章 圖
8.1 圖的基本概念
8.1.1 圖的定義和術語
8.1.2 圖的基本操作
8.2 圖的存儲結構
8.2.1 鄰接矩陣
8.2.2 鄰接表
8.2.3 十字鏈表
8.2.4 鄰接多重表
8.3 圖的遍歷
8.3.1 深度優先搜索
8.3.2 廣度優先搜索
8.3.3 應用圖的遍歷判定圖的連通性
8.3.4 生成樹和生成森林
8.4 小生成樹
8.4.1 小生成樹的概念
8.4.2 普裡姆(Prim)算法
8.4.3 克魯斯卡爾(Kruskal)算法
8.5 短路徑
8.5.1 迪傑斯特拉(Dijkstra)算法
8.5.2 弗洛伊德(Floyd)算法
8.6 拓撲排序與關鍵路徑
8.6.1 有向無環圖的概念
8.6.2 拓撲排序
8.6.3 關鍵路徑
小結
習題
第9章 查找
9.1 基本概念
9.1.1 相關術語
9.1.2 查找表結構
9.2 靜態查找表
9.2.1 順序查找
9.2.2 折半查找
9.2.3 插值查找和斐波那契查找
9.2.4 分塊查找
9.3 二叉排序樹
9.3.1 二叉排序樹的定義
9.3.2 二叉排序樹的查找過程
9.3.3 二叉排序樹的插入操作
9.3.4 二叉排序樹的刪除操作
9.4 平衡二叉樹
9.4.1 平衡二叉樹的定義
9.4.2 平衡二叉樹的平衡化旋轉
9.4.3 平衡二叉樹的插入
9.4.4 平衡二叉樹的查找性能分析
9.5 B樹和B+樹
9.5.1 B樹的定義
9.5.2 B樹的查找
9.5.3 B樹的插入
9.5.4 B樹的刪除
9.5.5 B+樹
9.6 哈希表查找
9.6.1 哈希表與哈希方法
9.6.2 常用的哈希函數
9.6.3 處理衝突的方法
9.6.4 哈希表的查找性能分析
小結
習題
第10章 排序
10.1 排序的基本概念
10.1.1 相關術語
10.1.2 排序的時間開銷
10.2 插入排序
10.2.1 直接插入排序
10.2.2 折半插入排序
10.2.3 表插入排序
10.2.4 希爾排序
10.3 交換排序
10.3.1 冒泡排序
10.3.2 快速排序
10.4 選擇排序
10.4.1 簡單選擇排序
10.4.2 樹形選擇排序
10.4.3 堆排序
10.5 歸並排序
10.6 基數排序
10.6.1 多關鍵碼排序
10.6.2 鏈式基數排序
10.7 外排序
10.7.1 外部排序的方法
10.7.2 多路平衡歸並的實現
小結
習題
參考文獻