評論(0

零基礎學數據結構

標籤: 暫無標籤

《零基礎學數據結構》是機械工業出版社策劃的零基礎學系列的非常經典的圖書。零基礎學系列的許多圖書都成為暢銷圖書,其中,《零基礎學數據結構》榮登月暢銷第11名,周暢銷第2。
本書特點:
1。內容全面,講解詳細
2。層次清晰,結構合理
3。結合圖表,敘述簡單
4。例子典型,深入剖析
5。配有系統,鞏固知識
6。配有多媒體視頻講解,加速學習
《數據結構》是計算機專業的專業基礎課和核心課程。本書內容全面,所有演算法都是用C語言描述,能夠直接運行,在每一章的所有知識點都給出了演算法的具體使用。本書內容包括數據結構概述、C語言程序設計基礎、線表、棧、隊列、串、數組、廣義表、樹和二叉樹、圖、查找、內排序和外排序。為了便於讀者學習,在講解每一個知識點時,都結合圖和具體實例進行分析,在每個知識點的最後都給出演算法的具體應用,每一個例子都比較典型且知識點覆蓋完整。
本書可作為大中專院校的計算機相關專業數據結構的教材,也可作為計算機軟體開發、考研和軟體等級考試相關人員的參考書。
目錄
第一篇 基 礎 篇
第1章 數據結構概述 1
1.1 數據結構的基本概念 1
1.2 抽象數據類型及其描述 2
1.2.1 抽象數據類型的定義 3
1.2.2 抽象數據類型的描述 3
1.3 數據結構的邏輯結構與物理結構 4
1.3.1 邏輯結構 4
1.3.2 物理結構 5
1.4 演算法的特性與演算法的描述 5
1.4.1 演算法的定義 5
1.4.2 演算法的特性 6
1.4.3 演算法的描述 6
1.5 演算法分析 7
1.5.1 演算法設計的要求 7
1.5.2 演算法效率評價 8
1.5.3 演算法時間複雜度 9
1.5.4 演算法空間複雜度 11
1.6 小結 11
第2章 C語言基礎 12
2.1 開發環境介紹 12
2.1.1 Turbo C 2.0開發環境介紹 12
2.1.2 Visual C++ 6.0開發環境介紹 14
2.2 遞歸與非遞歸 17
2.2.1 函數的遞歸調用 17
2.2.2 遞歸應用舉例 18
2.2.3 一般遞歸轉化為非遞歸 20
2.3 指針 20
2.3.1 指針變數 20
2.3.2 指針變數的引用 22
2.3.3 指針與數組 22
2.3.4 函數指針與指針函數 27
2.4 參數傳遞 32
2.4.1 傳值調用 33
2.4.2 傳地址調用 34
2.5 結構體與聯合體 36
2.5.1 結構體的定義 37
2.5.2 指向結構體的指針 38
2.5.3 聯合體及應用 39
2.6 動態內存分配與釋放 40
2.6.1 內存動態分配與釋放 40
2.6.2 鏈表 40
2.7 小結 46
2.8 習題 46
第二篇 線性數據結構
第3章 線性表 47
3.1 線性表的概念及運算 47
3.1.1 線性表的邏輯結構 47
3.1.2 線性表的抽象數據類型 48
3.2 線性表的順序表示與實現 49
3.2.1 線性表的順序存儲結構 49
3.2.2 順序表的基本運算 50
3.2.3 順序表的實現演算法分析 53
3.3 順序表的應用舉例 53
3.4 線性表的鏈式表示與實現 58
3.4.1 單鏈表的存儲結構 58
3.4.2 單鏈表的基本運算 60
3.5 單鏈表應用舉例 65
3.6 循環單鏈表 70
3.6.1 循環單鏈表的鏈式存儲 71
3.6.2 循環單鏈表的應用 72
3.7 雙向鏈表 76
3.7.1 雙向鏈表的存儲結構 76
3.7.2 雙向鏈表的插入操作和刪除操作 77
3.8 雙向鏈表的應用舉例 79
3.9 靜態鏈表 82
3.9.1 靜態鏈表的存儲結構 82
3.9.2 靜態鏈表的實現 83
3.9.3 靜態鏈表的應用 85
3.10 各種線性表的操作 86
3.11 一元多項式的表示與相乘 94
3.11.1 一元多項式的表示 94
3.11.2 一元多項式相乘 95
3.12 小結 99
3.13 習題 100
第4章 棧 101
4.1 棧的表示與實現 101
4.1.1 棧的定義 101
4.1.2 棧的抽象數據類型 102
4.2 棧的順序表示與實現 102
4.2.1 棧的順序存儲結構 102
4.2.2 順序棧的基本運算 103
4.2.3 共享棧的問題 105
4.3 棧的應用舉例一 107
4.4 棧的鏈式表示與實現 111
4.4.1 棧的存儲結構 111
4.4.2 棧的基本運算 112
4.4.3 鏈棧的應用 114
4.5 棧的應用舉例二 115
4.5.1 數制轉換 116
4.5.2 括弧配對 117
4.5.3 行編輯程序 119
4.6 棧與遞歸的實現 121
4.6.1 遞歸 121
4.6.2 消除遞歸 124
4.7 棧的應用舉例三 129
4.7.1 表達式的轉換與計算 130
4.7.2 表達式的運算 132
4.8 小結 136
4.9 習題 137
第5章 隊列 138
5.1 隊列的定義及抽象數據類型 138
5.1.1 隊列的定義 138
5.1.2 隊列的抽象數據類型 138
5.2 隊列的順序存儲及實現 139
5.2.1 順序隊列的表示 139
5.2.2 順序隊列的「假溢出」 142
5.2.3 順序循環隊列的表示 143
5.2.4 順序循環隊列的實現 144
5.2.5 順序循環隊列實例 145
5.3 隊列的鏈式存儲及實現 148
5.3.1 鏈式隊列的表示 148
5.3.2 鏈式隊列的實現 150
5.3.3 鏈式隊列實例 152
5.4 雙端隊列 156
5.4.1 雙端隊列的定義 156
5.4.2 雙端隊列的應用 156
5.5 隊列在楊輝三角中的應用 159
5.5.1 楊輝三角 159
5.5.2 楊輝三角的隊列構造 159
5.5.3 楊輝三角隊列的實現 160
5.6 小結 164
5.7 習題 164
第6章 串 165
6.1 串的定義及抽象數據類型 165
6.1.1 串的定義 165
6.1.2 串的抽象數據類型 165
6.2 串的順序表示與實現 167
6.2.1 串的順序存儲結構 167
6.2.2 串的基本運算 168
6.3 串的應用舉例 173
6.4 串的堆分配表示與實現 174
6.4.1 堆分配的存儲結構 175
6.4.2 堆串的基本運算 175
6.5 堆串的應用舉例 181
6.6 串的鏈式存儲表示與實現 183
6.6.1 串的鏈式存儲結構 183
6.6.2 鏈串的基本運算 184
6.7 鏈串的應用舉例 189
6.8 串的模式匹配 191
6.8.1 經典的模式匹配演算法─Brute-Force 191
6.8.2 KMP演算法 193
6.8.3 模式匹配應用舉例 198
6.9 小結 202
6.10 習題 202
第7章 數組 203
7.1 數組的定義及抽象數據類型 203
7.1.1 數組的定義 203
7.1.2 數組的抽象數據類型 204
7.2 數組的順序表示與實現 204
7.2.1 數組的順序存儲結構 204
7.2.2 數組的基本運算 206
7.2.3 數組的應用舉例 208
7.3 特殊矩陣的壓縮存儲 209
7.3.1 對稱矩陣的壓縮存儲 210
7.3.2 三角矩陣的壓縮存儲 210
7.3.3 對角矩陣的壓縮存儲 211
7.4 稀疏矩陣的壓縮存儲 212
7.4.1 稀疏矩陣的定義 212
7.4.2 稀疏矩陣的抽象數據類型 212
7.4.3 稀疏矩陣的三元組表示 213
7.4.4 稀疏矩陣的三元組實現 213
7.5 稀疏矩陣的應用舉例 219
7.5.1 稀疏矩陣相乘三元組表示 219
7.5.2 稀疏矩陣相乘三元組實現 221
7.6 稀疏矩陣的十字鏈表表示與實現 224
7.6.1 稀疏矩陣的十字鏈表表示 224
7.6.2 稀疏矩陣的十字鏈表實現 225
7.7 稀疏矩陣的十字鏈表實現應用舉例 228
7.8 小結 233
7.9 習題 234
第8章 廣義表 235
8.1 廣義表的定義及抽象數據類型 235
8.1.1 廣義表的定義 235
8.1.2 廣義表的抽象數據類型 236
8.2 廣義表的頭尾鏈表表示與實現 236
8.2.1 廣義表的頭尾鏈表存儲結構 236
8.2.2 廣義表的基本運算 237
8.2.3 採用頭尾鏈表存儲結構的廣義表應用舉例 240
8.3 廣義表的擴展線性鏈表表示與實現 243
8.3.1 廣義表的擴展線性鏈表存儲 243
8.3.2 廣義表的基本運算 244
8.3.3 採用擴展線性鏈表存儲結構的廣義表應用舉例 247
8.4 小結 249
8.5 習題 250
第三篇 非線性數據結構
第9章 樹 251
9.1 樹的定義及抽象數據類型 251
9.1.1 樹的定義 251
9.1.2 樹的邏輯表示 252
9.1.3 樹的抽象數據類型 253
9.2 二叉樹 254
9.2.1 二叉樹的定義 254
9.2.2 二叉樹的性質 255
9.2.3 二叉樹的抽象數據類型 257
9.3 二叉樹的存儲表示與實現 258
9.3.1 二叉樹的順序存儲 258
9.3.2 二叉樹的鏈式存儲 258
9.3.3 二叉樹的基本運算 259
9.4 二叉樹的遍歷 263
9.4.1 二叉樹遍歷的定義 263
9.4.2 二叉樹的先序遍歷 263
9.4.3 二叉樹的中序遍歷 265
9.4.4 二叉樹的後序遍歷 267
9.5 二叉樹遍歷的應用舉例 269
9.5.1 二叉樹的創建 269
9.5.2 二叉樹的輸出 273
9.5.3 二叉樹的計數 276
9.6 二叉樹的線索化 279
9.6.1 二叉樹線索化的定義.. 279
9.6.2 二叉樹的線索化 280
9.6.3 線索二叉樹的遍歷 282
9.6.4 線索二叉樹的應用舉例 284
9.7 樹、森林與二叉樹 287
9.7.1 樹的存儲結構 287
9.7.2 樹轉換為二叉樹 290
9.7.3 森林轉換為二叉樹 291
9.7.4 二叉樹轉換為樹和森林 292
9.7.5 樹和森林的遍歷 292
9.8 哈夫曼樹 293
9.8.1 哈夫曼樹的定義 293
9.8.2 哈夫曼編碼 294
9.8.3 哈夫曼編碼演算法的實現 295
9.9 樹與二叉樹的應用舉例 301
9.9.1 相似二叉樹 301
9.9.2 由先序和中序、中序和後序確定二叉樹 302
9.9.3 樹的孩子兄弟鏈表應用舉例 308
9.10 小結 311
9.11 習題 312
第10章 圖 313
10.1 圖的定義與相關概念 313
10.1.1 圖的定義 313
10.1.2 圖的相關概念 314
10.1.3 圖的抽象數據類型 316
10.2 圖的存儲結構 317
10.2.1 鄰接矩陣表示法 317
10.2.2 鄰接表表示法 318
10.2.3 十字鏈表表示法 320
10.2.4 鄰接多重鏈表表示法 321
10.3 圖的應用舉例 322
10.3.1 採用鄰接矩陣創建圖 322
10.3.2 採用鄰接表創建圖 325
10.4 圖的遍歷 328
10.4.1 圖的深度優先遍歷 328
10.4.2 圖的廣度優先遍歷 331
10.4.3 圖的遍歷應用舉例 333
10.5 圖的連通性問題 335
10.5.1 無向圖的連通分量與生成樹 335
10.5.2 最小生成樹 337
10.6 有向無環圖 342
10.6.1 AOV網與拓撲排序 342
10.6.2 AOE網與關鍵路徑 345
10.6.3 關鍵路徑應用舉例 349
10.7 最短路徑 354
10.7.1 從某個頂點到其餘各頂點的最短路徑 354
10.7.2 每一對頂點之間的最短路徑 359
10.8 圖的應用舉例 363
10.9 小結 367
10.10 習題 368
第四篇 查找和排序
第11章 查找 369
11.1 查找的基本概念 369
11.2 靜態查找 370
11.2.1 順序表的查找 370
11.2.2 有序順序表的查找 371
11.2.3 索引順序表的查找 373
11.2.4 靜態查找應用舉例 374
11.3 動態查找 377
11.3.1 二叉排序樹 377
11.3.2 平衡二叉樹 384
11.4 B_樹與B+樹 392
11.4.1 B_樹 392
11.4.2 B+樹 399
11.5 散列表 400
11.5.1 散列表的定義 400
11.5.2 散列函數的構造方法 401
11.5.3 處理衝突的方法 402
11.5.4 散列表應用舉例 403
11.6 小結 407
11.7 習題 408
第12章 內排序 409
12.1 排序的基本概念 409
12.2 插入排序 410
12.2.1 直接插入排序 410
12.2.2 折半插入排序 411
12.2.3 希爾排序 412
12.2.4 插入排序應用舉例 413
12.3 選擇排序 415
12.3.1 簡單選擇排序 415
12.3.2 堆排序 417
12.3.3 選擇排序應用舉例 421
12.4 交換排序 423
12.4.1 冒泡排序 423
12.4.2 快速排序 424
12.4.3 交換排序應用舉例 427
12.5 歸併排序 431
12.5.1 歸併排序演算法 431
12.5.2 歸併排序應用舉例 432
12.6 基數排序 434
12.6.1 基數排序演算法 434
12.6.2 基數排序應用舉例 437
12.7 各種排序演算法的比較 441
12.8 排序演算法應用舉例 442
12.9 小結 445
12.10 習題 446
第13章 外排序 447
13.1 外存的存取特性 447
13.2 磁碟排序 448
13.2.1 歸併排序的基本方法 448
13.2.2 多路歸併排序 449
13.3 磁帶排序 451
13.3.1 2路歸併排序 451
13.3.2 多路非平衡歸併排序 452
13.4 小結 453
上一篇[多媒體視頻]    下一篇 [遞歸調用]

相關評論

同義詞:暫無同義詞