《數據結構教程(第二版)》是2017年清華大學出版社出版的圖書。該書是計算機及信息管理專業的必修課程。
基本介紹
- 書名:數據結構教程(第二版)
- 作者:王少波、 張志
- 出版社:清華大學出版社
- ISBN:9787302476832
內容簡介,圖書目錄,
內容簡介
“數據結構”是計算機及信息管理專業的必修課程。 本書是作者在總結三十多年數據結構教學經驗的基礎上編寫而成。全書共9章,內容涵蓋數據結構的基本概念、線性表和串、棧和佇列、樹和二叉樹、圖、數組和矩陣、排序、查找、檔案。本書採用C 程式設計語言對算法進行描述。本書不僅介紹了數據結構的相關理論,而且運用大量的實際案例充實教材的內容,力求既有理論深度,又有實用價值。附錄A中還給出了數據結構課程實踐中用到的VC 6.0編譯環境介紹; 附錄B給出本課程實踐內容及要求; 附錄C給出實踐報告範本。每章都提供相關習題並附有部分習題答案。 本書是按高等院校對計算機及信息管理專業本科四年制教學大綱的要求編寫的教材,也可以作為其他相關專業的教材,還可以作為計算機科技工作者的參考書。
圖書目錄
目錄
第1章緒論
1.1什麼是數據結構
1.1.1數據結構相關事例
1.1.2數據結構的定義
1.2數據結構的相關概念
1.2.1數據和信息
1.2.2數據元素
1.2.3結構類型
1.2.4靜態存儲空間分配回收和動態存儲空間分配回收
1.3數據類型、抽象數據類型和數據結構
1.3.1類和數據類型
1.3.2抽象數據類型
1.3.3數據結構、數據類型和抽象數據類型
1.4算法及算法分析、算法描述
1.4.1算法和程式
1.4.2程式性能和算法效率
1.4.3算法分析
1.4.4算法描述
習題1
第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雙向鍊表
2.4.1雙向鍊表的存儲
2.4.2雙向鍊表類定義
2.4.3雙向鍊表的操作
2.5單向循環鍊表和雙向循環鍊表
2.5.1單向循環鍊表的存儲
2.5.2雙向循環鍊表的存儲
2.6模擬指針方式構造簡單鍊表
2.6.1模擬鍊表的存儲空間的構建
2.6.2在模擬鍊表空間上構建簡單鍊表
2.7多重鍊表
2.8鍊表套用
2.8.1結點移至表首運算
2.8.2鍊表的逆向運算
2.8.3多項式的相加運算
2.8.4十字鍊表結構的套用
2.8.5一個較複雜的機票售票系統的數據結構方案
2.9串
2.9.1串的定義
2.9.2串的邏輯結構及運算
2.9.3串的順序存儲結構
2.9.4串的鏈式存儲結構
2.10線性表基本算法的程式實現
2.10.1順序存儲結構線性表程式實現
2.10.2帶表頭結點的簡單鍊表程式實現
習題2
第3章堆疊和佇列
3.1堆疊的定義
3.1.1堆疊的邏輯結構
3.1.2堆疊的抽象數據類型
3.2堆疊的順序存儲及操作
3.2.1堆疊順序存儲
3.2.2順序存儲結構堆疊的運算實現
3.3堆疊的鏈式存儲及操作
3.3.1堆疊的鏈式存儲
3.3.2鏈式棧類的定義
3.3.3鏈式棧類運算的實現
3.4多個棧共享鄰接空間
3.5堆疊的套用
3.5.1檢驗表達式中括弧的匹配
3.5.2表達式的求值
3.5.3背包問題求解
3.5.4地圖四染色問題求解
3.6佇列的定義
3.6.1佇列的邏輯結構
3.6.2佇列的抽象數據類型
3.7佇列的順序存儲及操作
3.7.1佇列的順序存儲
3.7.2順序存儲結構下佇列的運算實現
3.8佇列的鏈式存儲及操作
3.8.1佇列的鏈式存儲
3.8.2鏈式佇列模板類的定義
3.8.3鏈式佇列的操作
3.9佇列的套用
3.9.1列車重排
3.9.2投資組合問題
3.10堆疊和佇列基本算法的程式實現
3.10.1堆疊順序存儲結構程式實現
3.10.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.4二叉樹鏈式存儲結構下的操作
4.4.1二叉樹的操作概念
4.4.2二叉樹的前序、中序、後序遍歷操作
4.4.3二叉樹的層次遍歷運算
4.5線索樹
4.5.1線索樹的概念
4.5.2二叉線索樹的操作
4.6一般樹的表示和遍歷
4.6.1一般樹的二叉鍊表示及其與二叉樹的關係
4.6.2二叉樹、一般樹及森林的關係
4.6.3一般樹的遍歷概念
4.6.4一般樹的運算
4.7樹的套用
4.7.1分類二叉樹
4.7.2堆樹
4.7.3樹的路徑長度和赫夫曼樹
4.8二叉樹基本算法的程式實現
習題4
第5章圖
5.1圖的概念
5.1.1圖的定義
5.1.2圖的術語
5.1.3圖的抽象數據類型
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.6拓撲排序
5.6.1有向無環圖
5.6.2AOV網的概念
5.6.3AOV網的算法
5.7關鍵路徑
5.7.1AOE的概念
5.7.2關鍵路徑的概念
5.7.3關鍵路徑的算法
習題5
第6章數組、矩陣和廣義表
6.1數組的定義
6.1.1數組的邏輯結構
6.1.2數組的抽象數據類型
6.2數組的順序表示及運算
6.2.1數組的順序存儲結構
6.2.2數組順序存儲結構描述
6.2.3數組順序存儲結構下的操作
6.3矩陣的存儲及操作
6.3.1矩陣的定義及操作
6.3.2矩陣的順序存儲
6.3.3特殊矩陣的壓縮存儲及操作
6.3.4稀疏矩陣的壓縮存儲及操作
習題6
第7章排序
7.1排序的基本概念
7.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樹形選擇排序
7.6歸併排序
7.7基數排序
7.7.1用二維數組表示桶
7.7.2用鏈式存儲結構實現桶
7.8內部排序方法比較
7.9外排序
7.9.1外部排序
7.9.2多路平衡歸併
習題7
第8章查找
8.1查找的概念
8.2靜態查找技術
8.2.1順序查找
8.2.2二分查找
8.2.3分塊查找
8.3動態查找技術
8.3.1平衡二叉樹
8.3.2B樹
8.3.3B 樹
8.4哈希表的查找
8.4.1基本概念
8.4.2構造哈希函式的方法
8.4.3哈希衝突的解決方法
8.4.4哈希表的查找
8.4.5哈希算法
8.4.6哈希表的查找分析
習題8
第9章檔案
9.1外部存儲設備
9.1.1磁帶
9.1.2磁碟
9.1.3光碟
9.1.4快閃記憶體
9.2基本概念
9.3順序檔案
9.4索引檔案
9.5索引順序檔案
9.6直接存取檔案
9.7倒排檔案
習題9
附錄AVC 6.0編譯環境介紹
附錄B實踐內容及要求
附錄C數據結構課程實驗報告格式範本
參考文獻