數據結構實用教程(第二版)

數據結構實用教程(第二版)

《數據結構實用教程(第二版)》是清華大學出版社2015年出版的圖書,作者徐孝凱

基本介紹

  • 書名:數據結構實用教程(第二版)
  • 作者:徐孝凱
  • ISBN:9787302133971
  • 定價:32
  • 出版社:清華大學出版社
  • 出版時間:2015-1-29
  • 裝幀:平裝
內容簡介,圖書目錄,

內容簡介

本書是為全國高等院校計算機及相關專業開設數據結構課程而精心組織和編著的一本實用教材。它從1999年出版以來,一直深受廣大讀者和專家的好評,相繼被許多高校選定為教科書和考研參考書,並被列選為國家級“十一五”規劃教材。這次對本書進行了認真和全面的修訂,形成第2版,相信會得到更廣泛的認可,對數據結構學科的教學和發展產生積極的影響。
本書從計算機學科發展和套用的實際需要出發,對各種常用的數據結構,從邏輯結構、存儲結構、運算種類、運算方法和算法等各個方面進行了深入細緻的解剖和分析,使讀者更容易理解基本概念和知識,能夠輕鬆地進行算法設計和上機操作的訓練,大大提高軟體開發與設計的專業能力。
另外,與本書配套的習題參考解答也一併被修訂和出版,為廣大自學讀者提供方便。

圖書目錄

第1章 緒論 1
1.1 常用術語 1
1.2 算法描述 11
1.3 算法評價 13
*1.4 與算法描述有關的C++知識 19
1.4.1 包含檔案語句 20
1.4.2 數據類型 28
1.4.3 函式 36
1.4.4 運算符重載 41
習題1 43
第2章 線性表 48
2.1 線性表的定義和抽象數據類型 48
2.1.1 線性表的定義 48
2.1.2 線性表的抽象數據類型 49
2.1.3 操作舉例 50
2.2 線性表的順序存儲和操作實現 51
2.2.1 線性表的順序存儲結構 51
2.2.2 順序存儲下的線性表操作的實現 53
*2.3 線性表套用舉例 62
2.4 線性表的連結存儲結構 67
2.5 線性表操作在單鍊表上的實現 75
*2.6 多項式計算 83
2.6.1 多項式表示與求值 83
2.6.2 兩個多項式相加 88
習題2 91
第3章 集合、稀疏矩陣和廣義表 94
3.1 集合的定義和抽象數據類型 94
3.1.1 集合定義 94
3.1.2 集合的抽象數據類型 94
3.2 集合的順序存儲結構和操作實現 95
3.3 集合的連結存儲結構和操作實現 102
3.4 稀疏矩陣 108
3.4.1 稀疏矩陣的定義 108
3.4.2 稀疏矩陣的存儲結構 110
*3.4.3 稀疏矩陣的運算 113
3.5 廣義表 120
3.5.1 廣義表的定義 120
3.5.2 廣義表的存儲結構 122
3.5.3 廣義表的運算 123
3.5.4 簡單程式舉例 127
習題3 128
第4章 棧和佇列 131
4.1 棧 131
4.1.1 棧的定義 131
4.1.2 棧的抽象數據類型 131
4.2 棧的順序存儲結構和操作實現 132
4.3 棧的連結存儲結構和操作實現 136
4.4 棧的簡單套用舉例 138
4.5 算術表達式的計算 142
4.5.1 算術表達式的兩種表示 142
4.5.2 後綴表達式求值的算法 144
4.5.3 把中綴表達式轉換為後綴表達式的算法 146
4.6 棧與遞歸 150
4.7 佇列 160
4.7.1 佇列的定義 160
4.7.2 佇列的抽象數據類型 161
4.7.3 佇列的順序存儲結構和操作實現 162
4.7.4 佇列的連結存儲結構和操作實現 165
*4.8 佇列套用舉例 169
習題4 173
第5章 樹 178
5.1 樹的概念 178
5.1.1 樹的定義 178
5.1.2 樹的表示 180
5.1.3 樹的基本術語 181
5.1.4 樹的性質 182
5.2 二叉樹 183
5.2.1 二叉樹的定義 183
5.2.2 二叉樹的性質 184
5.2.3 二叉樹的抽象數據類型 186
5.2.4 二叉樹的存儲結構 187
5.3 二叉樹遍歷 189
5.4 二叉樹其他運算 193
5.5 樹的存儲結構和運算 198
5.5.1 樹的抽象數據類型 198
5.5.2 樹的存儲結構 199
5.5.3 樹的運算 201
習題5 207
第6章 特殊二叉樹 212
6.1 二叉搜尋樹 212
6.1.1 二叉搜尋樹的定義 212
6.1.2 二叉搜尋樹的抽象數據類型 212
6.1.3 二叉搜尋樹的運算 213
6.2 堆 220
6.2.1 堆的定義 220
6.2.2 堆的抽象數據類型 221
6.2.3 堆的存儲結構 221
6.2.4 堆的運算 222
6.3 哈夫曼樹 227
6.3.1 基本術語 227
6.3.2 構造哈夫曼樹 228
*6.3.3 哈夫曼編碼 231
*6.4 線索二叉樹 234
6.4.1 二叉樹的線索化 234
6.4.2 利用線索進行遍歷 238
*6.5 平衡二叉樹 241
6.5.1 平衡二叉樹的定義 241
6.5.2 平衡二叉樹的調整 242
習題6 247
第7章 圖 249
7.1 圖的概念 249
7.1.1 圖的定義 249
7.1.2 圖的基本術語 250
7.1.3 圖的抽象數據類型 253
7.2 圖的存儲結構 254
7.2.1 鄰接矩陣 254
7.2.2 鄰接表 257
7.2.3 邊集數組 262
7.3 圖的遍歷 264
7.3.1 深度優先搜尋遍歷 264
7.3.2 廣度優先搜尋遍歷 267
7.3.3 非連通圖的遍歷 269
習題7 271
第8章 圖的套用 273
8.1 圖的生成樹和最小生成樹 273
8.1.1 生成樹和最小生成樹的概念 273
8.1.2 普里姆算法 275
8.1.3 克魯斯卡爾算法 278
8.2 最短路徑 281
8.2.1 最短路徑的概念 281
8.2.2 從一頂點到其餘各頂點的最短路徑 282
*8.2.3 每對頂點之間的最短路徑 286
8.3 拓撲排序 290
8.3.1 拓撲排序的概念 290
8.3.2 拓撲排序算法 293
*8.4 關鍵路徑 296
8.4.1 頂點事件的發生時間 296
8.4.2 計算關鍵路徑的方法和算法 299
習題8 302
第9章 查找 305
9.1 查找的概念 305
9.2 順序表查找 306
9.2.1 順序查找 306
9.2.2 二分查找 307
9.3 索引查找 311
9.3.1 索引的概念 311
9.3.2 索引查找算法 314
*9.3.3 分塊查找 316
9.4 散列查找 317
9.4.1 散列的概念 317
9.4.2 散列函式 319
9.4.3 處理衝突的方法 321
9.4.4 散列表的運算 324
9.5 B樹查找 328
9.5.1 B_樹定義 328
9.5.2 B_樹查找 330
9.5.3 B_樹插入 332
9.5.4 B_樹刪除 335
*9.5.5 對B_樹的其他運算 337
*9.5.6 B+樹簡介 340
習題9 341
第10章 排序 343
10.1 排序的基本概念 343
10.2 插入排序 344
10.2.1 直接插入排序 345
*10.2.2 希爾排序 346
10.3 選擇排序 347
10.3.1 直接選擇排序 347
10.3.2 堆排序 348
10.4 交換排序 352
10.4.1 氣泡排序 352
10.4.2 快速排序 354
10.5 歸併排序 357
*10.6 各種內排序方法的比較 360
*10.7 外排序 362
10.7.1 外排序的概念 362
10.7.2 外排序算法 364
習題10 371

熱門詞條

聯絡我們