第1章概論
1.1基本術語
1.2數據的邏輯結構
1.3數據的存儲結構
1.4數據的運算
1.5算法分析
1.6算法分析舉例
習題一
第2章線性表
2.1順序表
2.1.1插入
2.1.2刪除
2.2約瑟夫問題
2.3線性鏈表
2.3.1單向鏈表
2.3.2向鏈表
2.3.3靜態(tài)鏈表
2.4多項式相加
習題二
第3章棧和隊列
3.1順序棧
3.2鏈接棧
3.3表達式求值
3.4順序隊列
3.5鏈接隊列
3.6報數問題
3.7隨機事件模擬
習題王
第4章樹形結構
4.1樹
4.1.1樹的定義
4.1.2基本術語
4.1.3樹的存儲表示
4.2二叉樹
4.2.1二叉樹的定義
4.2.2二叉樹的性質
4.2.3滿二叉樹和完全二叉樹
4.2.4二叉樹的存儲表示
4.3遍歷樹形結構
4.3.1遍歷樹
4.3.2遍歷二叉樹
4.4二叉樹的遍歷算法
4.4.1遞歸算法
4.4.2非遞歸算法
4.4.3建立二叉鏈表
4.5線索二叉樹
4.5.1線索
4.5.2利用線索
4.5.3線索化二叉樹
4.6哈夫曼樹及其應用
4.6.1帶權路徑長度
4.6.2哈夫曼樹(最優(yōu)二叉樹)
4.6.3哈夫曼編碼
4.6.4哈夫曼算法
4.7狀態(tài)樹
4.7.1背包問題
4.7.2n皇后問題
習題四
第5章圖狀結構
5.1基本術語
5.2圖的存儲表示
5.2.1鄰接矩陣
5.2.2鄰接表
5.2.3鄰接多重表
5.2.4建立圖的存儲結構
5.3圖的遍歷和生成樹
5.3.1深度遍歷
5.3.2廣度遍歷
5.3.3圖的遍歷算法
5.3.4生成樹和生成樹林
5.4最小生成樹
5.5雙連通圖
5.6單源最短路徑
5.7每一對頂點之間的最短路徑
5.8拓撲排序
5.9關鍵路徑
5.10最大流量
習題五
第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.4稀疏矩陣的運算
6.4.1求矩陣的轉置
6.4.2插人非零元素
6.5廣義表
6.5.1廣義表的邏輯特點
6.5.2廣義表的存儲表示
6.6廣義表的運算
6.6.1廣義表的創(chuàng)建和銷毀
6.6.2廣義表的定位.插人和刪除
6.6.3判兩個廣義表是否相等
習題六
第7章查找
7.1順序查找
7.2折半查找
7.3分塊查找
7.4樹型查找
7.4.1二叉排序樹
7.4.2查找
7.4.3插人
7.4.4刪除
7.4.5平衡二叉排序樹
7.5散列查找
7.5.1散列表
7.5.2散列函數
7.5.3處理沖突的方法
7.5.4散列表的查找算法
7.5.5散列表的平均查找長度
習題七
第8章內排序
8.1直接插入排序
8.2簡單選擇排序
8.3起泡排序
8.4堆排序
8.5快速排序
8.6歸并排序
8.7基數排序
8.87種排序方法的比較
習題八
第9章文件
9.1概述
9.2文件組織
9.2.1順序文件
9.2.2索引文件
9.2.3散列文件
9.2.4多重表文件
9.3動態(tài)索引
9.3.1B-樹的定義
9.3.2B-樹的查找
9.3.3B-樹的插人
9.3.4B-樹的刪除
9.3.5B-樹的檢索效率
9.3.6B+樹
9.4外排序
9.4.1基本原理
9.4.2多路歸并
9.4.3初始順串的生成
9.4.4最優(yōu)歸并模式
習題九
第10章抽象數據類型
10.1概述
10.2定義抽象數據類型
10.2.1用Pascal語言描述
10.2.2用C++語言描述
10.3使用抽象數據類型
習題十
實習題
實習一順序表
實習二單向鏈表
實習三棧和隊列
實習四樹和二叉樹
實習五圖和網絡
實習六矩陣和廣義表
實習七查找
實習八排序
附錄
習題解答
習題一
習題二
習題三
習題四
習題五
習題六
習題七
習題八
習題九
習題十
參考文獻