數據結構與算法 (C語言版)
內容描述
《數據結構與算法(C語言版)》詳細介紹了數據處理過程中經常使用的經典結構,即線性表、樹、圖的邏輯結構、存儲結構和基本運算。針對最常見的典型運算——排序和查找設計了多種實現算法,採用C語言作為數據結構和算法的描述工具。全書共分為8章,包括緒論、線性表、棧和隊列、多維數組和廣義表、樹、圖、排序和查找。附錄部分給出了經典結構的典型應用程序。 本書具有內容完整、思路清晰、示例豐富、講解通俗易懂等特點,尤其在算法設計和難點內容的闡述方面有獨到之處。 本書適合作為高等院校電腦、信息類學科本科生的教材,同時可供對數據結構和算法有所瞭解的開發人員、廣大科技工作者和研究人員參考。
目錄大綱
目錄
第1章緒論
1.1基本術語
1.2數據結構的研究內容
1.2.1數據的邏輯結構
1.2.2數據的存儲結構
1.2.3數據的運算
1.3算法
1.3.1算法的定義及特性
1.3.2算法的描述
1.3.3算法的評價
1.4學習數據結構的意義和目的
小結
習題
第2章線性表
2.1線性表的定義及運算
2.1.1線性表的定義及邏輯特徵
2.1.2線性表上運算的定義
2.1.3線性表的存儲結構
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章棧和隊列
3.1棧
3.1.1棧的定義及運算
3.1.2順序棧及運算的算法實現
3.1.3鏈棧及運算的算法實現
3.1.4棧的應用
3.1.5棧與遞歸
3.2隊列
3.2.1隊列的定義及運算
3.2.2順序隊列及運算的實現
3.2.3鏈隊列及運算的實現
3.3棧與隊列的比較
小結
習題
第4章多維數組和廣義表
4.1多維數組
4.2矩陣的壓縮存儲
4.2.1特殊矩陣
4.2.2稀疏矩陣
4.3廣義表
4.3.1廣義表的定義
4.3.2廣義表的運算
小結
習題
第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.4哈夫曼樹
5.4.1哈夫曼樹的定義及建立
5.4.2哈夫曼編碼及解碼
5.5樹和森林
5.5.1樹和森林的遍歷定義
5.5.2森林與二叉樹的相互轉換 5.5.3樹的存儲
小結
習題
第6章圖
6.1圖的邏輯結構
6.2圖的存儲結構及實現
6.2.1鄰接矩陣
6.2.2鄰接表
6.2.3邊集數組
6.2.4圖的各種存儲結構的比較
6.3圖的遍歷
6.3.1深度優先搜索算法與實現
6.3.2廣度優先搜索算法與實現
6.3.3非連通圖的遍歷
6.4圖的經典應用——最小生成樹
6.4.1Prim算法
6.4.2Kruskal算法
6.5圖的經典應用——最短路徑
6.5.1單源最短路徑
6.5.2任意兩點間最短路徑
6.6圖的經典應用——拓撲排序
6.7圖的經典應用——關鍵路徑
小結
習題
第7章排序
7.1排序的相關概念
7.2插入排序
7.2.1直接插入排序
7.2.2希爾排序
7.3交換排序
7.3.1起泡排序
7.3.2快速排序
7.4選擇排序
7.4.1直接選擇排序
7.4.2堆排序
7.5歸並排序 7.6基數排序
7.7排序方法的比較
小結
習題
第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.4.3B樹
8.5散列查找
8.5.1散列表的概念
8.5.2散列函數的設計
8.5.3解決沖突的方法
8.5.4散列表的特點
小結
習題
附錄A經典結構的典型應用程序
A.1順序表的應用
A.2單鏈表的應用
A.3二叉鏈表的應用
A.4圖的遍歷程序舉例
A.5散列表的應用舉例
參考文獻