內容簡介
《數據結構:用C語言描述》系統地介紹了各種常用的數據結構以及排序、查找的各種算法。闡述了各種數據結構的邏輯關係、存儲表示及運算操作,並對C語言描述的算法作了詳細的註解和簡要的性能分析。全書既注重原理又注重實踐,配有大量圖表、例題和習題,內容豐富,概念講解清楚,邏輯性強,可讀性好。各章的小結可以使讀者抓住本章重點。書中針對不同層次教學的特點和需要用“*”號標明。每章備有習題。
《數據結構:用C語言描述》可作為高等院校計算機有關專業本科生、專科生的教材,亦可作為成人教育(面授或函授)的教材,還可供廣大從事計算機套用的科技人員參考。
目錄
第一章 概論
1.1 數據結構的概念
1.2 為什麼要學習數據結構
1.3 算法描述
1.4 算法分析
小結
習題
第二章 線性表
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 循環鍊表
2.3.4 雙鍊表
2.3.5 靜態鍊表
2.4 順序表和鍊表的比較
小結
習題
第三章 棧和佇列
3.1 棧
3.1.1 棧的概念及運算
3.1.2 順序棧
3.1.3 鏈棧
3.2 棧的套用舉例
3.3 佇列
3.3.1 佇列的概念及其運算
3.3.2 順序佇列
3.3.3 鏈佇列
3.4 佇列的套用舉例
小結
習題
第四章 串
4.1 串及其運算
4.1.1 串的基本概念
4.1.2 串的基本運算
4.2 串的存儲結構
4.3 串運算的實現
小結
習題
第五章 多維數組和廣義表
5.1 多維數組
5.2 矩陣的壓縮存儲
5.2.1 特殊矩陣
5.2.2 稀疏矩陣
5.3 廣義表的概念
5.4 廣義表的存儲
小結
習題
第六章 樹
6.1 樹的概念
6.2 二叉樹
6.2.1 二叉樹的概念
6.2.2 二叉樹的性質
6.2.3 二叉樹的存儲
6.3 二叉樹的遍歷
6.4 線索二叉樹
6.5 樹和森林
6.5.1 樹、森林與二叉樹的轉換
6.5.2 樹的存儲
6.5.3 樹和森林的遍歷
6.6 哈夫曼樹及其套用
6.6.1 最優二叉樹(哈夫曼樹)
6.6.2 哈夫曼編碼
小結
習題
第七章 圖
7.1 圖的概念
7.2 圖的存儲
7.2.1 鄰接矩陣表示法
7.2.2 鄰接表表示法
7.3 圖的遍歷
7.3.1 連通圖的深度優先搜尋遍歷
7.3.2 連通圖的廣度優先搜尋遍歷
7.3.3 非連通圖的遍歷
7.4 生成樹和最小生成樹
7.5 最短路徑
7.5.1 單源最短路徑
7.5.2 所有頂點對之間的最短路徑
7.6 拓撲排序
7.7 關鍵路徑
小結
習題
第八章 排序
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.7 內部排序方法的比較和選擇
8.8 外部排序簡介
小結
習題
第九章 查找
9.1 基本概念
9.2 線性表的查找
9.2.1 順序查找
9.2.2 二分法查找
9.2.3 分塊查找
9.3 樹表的查找
9.3.1 二叉排序樹
9.3.2 平衡的二叉排序樹
9.3.3 b-樹
9.4 散列表的查找
9.4.1 散列表
9.4.2 散列函式的構造方法
9.4.3 處理衝突的方法
9.4.4 散列表的查找及分析
小結
習題
第十章 檔案
10.1 檔案的基本概念
10.2 順序檔案
10.3 索引檔案
10.4 索引順序檔案
10.4.1 bam檔案
10.4.2 vsam檔案
10.5 散列檔案
10.6 多關鍵字檔案
10.6.1 多重表檔案
10.6.2 倒排檔案
小結
習題
附錄 C語言概要
參考文獻