內容簡介
數據結構是計算機和信息技術類等相關專業的一門重要的專業基礎課程,數據結構及其處理算法是設計與實現系統軟體和大型套用軟體的重要基礎,結合數據結構課程的現狀和發展趨勢,本教材具有難度適中、結構合理、套用性強的特點。
圖書目錄
第1 章 數據結構基礎 .................................................................................... 1
1.1 數據結構的基本概念 .................................................................................................... 2
1.1.1 數據結構的研究內容 ......................................................................................... 2
1.1.2 基本概念和術語 ................................................................................................. 5
1.1.3 數據結構課程的內容 ......................................................................................... 8
1.2 數據類型和抽象數據類型 ............................................................................................ 9
1.2.1 數據類型 ............................................................................................................. 9
1.2.2 抽象數據類型 ..................................................................................................... 9
1.3 算法和算法分析 .......................................................................................................... 10
1.3.1 算法特性 ........................................................................................................... 11
1.3.2 算法描述 ........................................................................................................... 12
1.3.3 算法性能分析 ................................................................................................... 12
1.4 本章小結 ...................................................................................................................... 15
習題 ....................................................................................................................................... 16
編程實例 ............................................................................................................................... 18
第2 章 線性表 ............................................................................................. 19
2.1 線性表的定義 .............................................................................................................. 20
2.1.1 線性表的邏輯結構 ........................................................................................... 20
2.1.2 線性表的抽象數據類型 ................................................................................... 20
2.2 線性表的順序存儲及實現 .......................................................................................... 22
2.2.1 順序表 ............................................................................................................... 22
2.2.2 順序表的基本運算 ........................................................................................... 23
2.3 線性表的鏈式存儲及實現 .......................................................................................... 28
vi | 數據結構案例教程(C 語言版)
2.3.1 單鍊表 ............................................................................................................... 29
2.3.2 單鍊表的基本運算 ........................................................................................... 30
2.3.3 循環鍊表 ........................................................................................................... 36
2.3.4 雙向鍊表 ........................................................................................................... 37
2.3.5 靜態鍊表 ........................................................................................................... 39
2.3.6 單鍊表套用舉例 ............................................................................................... 40
2.4 順序表與鍊表的比較 .................................................................................................. 43
2.5 本章小結 ...................................................................................................................... 44
習題 ....................................................................................................................................... 44
編程實例 ............................................................................................................................... 46
第3 章 棧和佇列 ......................................................................................... 48
3.1 棧 .................................................................................................................................. 49
3.1.1 棧的定義 ........................................................................................................... 49
3.1.2 棧的表示和實現 ............................................................................................... 50
3.2 棧的套用 ...................................................................................................................... 55
3.2.1 數制轉換問題 ................................................................................................... 56
3.2.2 括弧匹配檢驗 ................................................................................................... 57
3.2.3 表達式求值 ....................................................................................................... 58
3.2.4 棧與遞歸 ........................................................................................................... 61
3.3 佇列 .............................................................................................................................. 64
3.3.1 佇列的定義 ....................................................................................................... 64
3.3.2 佇列的表示和實現 ........................................................................................... 65
3.4 佇列的套用 .................................................................................................................. 71
3.5 本章小結 ...................................................................................................................... 73
習題 ....................................................................................................................................... 74
編程實例 ............................................................................................................................... 75
第4 章 串 .................................................................................................... 79
4.1 串的定義和基本運算 .................................................................................................. 80
4.1.1 串的定義 ........................................................................................................... 80
4.1.2 串的基本操作 ................................................................................................... 81
4.2 串的存儲結構 .............................................................................................................. 82
4.2.1 定長順序存儲 ................................................................................................... 82
4.2.2 堆存儲 ............................................................................................................... 83
目 錄 | vii
4.2.3 鏈式存儲 ........................................................................................................... 85
4.3 串的運算實現 .............................................................................................................. 86
4.4 串的模式匹配 .............................................................................................................. 90
4.4.1 BF 算法 ............................................................................................................. 90
4.4.2 KMP 算法 ......................................................................................................... 92
4.5 本章小結 ...................................................................................................................... 95
習題 ....................................................................................................................................... 96
編程實例 ............................................................................................................................... 99
第5 章 數組和廣義表 ................................................................................ 103
5.1 數組的定義及存儲 .................................................................................................... 104
5.1.1 數組的定義 ..................................................................................................... 104
5.1.2 數組的基本操作 ............................................................................................. 105
5.1.3 數組的順序存儲 ............................................................................................. 105
5.2 特殊矩陣的壓縮存儲 ................................................................................................ 107
5.2.1 對稱矩陣 ......................................................................................................... 108
5.2.2 三角矩陣 ......................................................................................................... 109
5.2.3 對角矩陣 ......................................................................................................... 110
5.3 稀疏矩陣 ..................................................................................................................... 111
5.3.1 稀疏矩陣的三元組表存儲 .............................................................................. 111
5.3.2 稀疏矩陣的十字鍊表存儲 ............................................................................. 115
5.4 廣義表 ........................................................................................................................ 117
5.4.1 廣義表的定義 ................................................................................................. 117
5.4.2 廣義表的存儲結構 ......................................................................................... 119
5.4.3 廣義表的基本操作實現 ................................................................................. 121
5.5 本章小結 .................................................................................................................... 122