數據結構習題精解(C語言實現+微課視頻)

數據結構習題精解(C語言實現+微課視頻)

作者: 陳銳 張建偉 馬軍霞
出版社: 清華大學
出版在: 2021-10-01
ISBN-13: 9787302586425
ISBN-10: 730258642X
裝訂格式: 平裝
總頁數: 399 頁





內容描述


本書精講數據結構與算法,對常見的算法及實現代碼進行詳細講解,並配合具體的圖表和教學視頻,使讀者輕松掌握數據結構知識並深入理解其中的算法思想。 本書共分8章,內容包括線性表、棧、隊列、串、數組和廣義表、樹、圖、查找、排序等。本書知識點涵蓋全面,案例典型。本書習題大部分來自各大名校考研和著名軟件公司的筆試面試題目,是作者多年來的教學實踐經驗的總結。本書案例代碼全部在Visual C++開發環境運行通過,並配套教學視頻,方便讀者自學。 本書適合C語言數據結構與算法的初學者、數據結構與算法課程考試的學生、考研人員、算法競賽選手,也可以作為高等院校和培訓機構電腦相關專業師生的教學參考書。


目錄大綱


第1章  緒論 1
1.1  知識點 1
1.2  內容精要 1
1.2.1  數據結構的基本概念 1
1.2.2  數據的邏輯結構與存儲結構 2
1.2.3  算法的特性與算法的描述 3
1.3  典型試題精選與解析 8
1.3.1  典型試題 8
1.3.2  答案解析 11
第2章  線性表 14
2.1  知識點 14
2.2  線性表的內容精要(1)─線性表的順序表示 14
2.2.1  線性表的定義 14
2.2.2  線性表的順序表示與實現 15
2.2.3  典型例題解析 20
2.3  順序表的典型試題精選與解析 25
2.3.1  典型試題 25
2.3.2  答案解析 27
2.4  線性表的內容精要(2)─線性表的鍊式表示 33
2.4.1  單鍊錶的存儲結構 33
2.4.2  單鍊錶上的基本運算 35
2.5  循環單鍊錶 40
2.5.1  循環鍊錶的鍊式存儲 40
2.5.2  循環鍊錶的合併操作 41
2.6  雙向鍊錶 42
2.6.1  雙向鍊錶的存儲結構 42
2.6.2  雙向鍊錶的插入和刪除操作 43
2.6.3  鍊式存儲結構與順序存儲結構的優缺點 45
2.6.4  典型例題解析 45
2.7  線性表的典型試題精選與解析 51
2.7.1  典型試題 51
2.7.2  答案解析 57
2.8  歸納總結 69
第3章  棧與隊列 70
3.1  知識點 70
3.2  棧的內容精要 70
3.2.1  棧的定義和術語 70
3.2.2  棧的特性 71
3.2.3  棧的存儲結構 71
3.2.4  棧與遞歸 74
3.2.5  典型例題解析 77
3.3  棧的典型試題精選與解析 84
3.3.1  典型試題 84
3.3.2  答案解析 87
3.4  隊列的內容精要 103
3.4.1  隊列的定義和術語 103
3.4.2  隊列的順序存儲 104
3.4.3  隊列的鍊式存儲 107
3.4.4  鍊式隊列的基本運算 109
3.4.5  雙端隊列 110
3.4.6  典型例題解析 112
3.5  隊列的典型試題精選與解析 114
3.5.1  典型試題 114
3.5.2  答案解析 117
3.6  歸納總結 130
第4章  串、數組與廣義表 131
4.1  知識點 131
4.2  串的內容精要 131
4.2.1  串的定義 131
4.2.2  串的表示與實現 132
4.2.3  串的模式匹配 135
4.2.4  典型例題解析 141
4.3  串的典型試題精選與解析 145
4.3.1  典型試題 145
4.3.2  答案解析 148
4.4  數組的內容精要 151
4.4.1  數組的定義 151
4.4.2  數組的順序表示與實現 152
4.4.3  特殊矩陣的壓縮存儲 153
4.4.4  稀疏矩陣的壓縮存儲 155
4.4.5  典型例題解析 157
4.5  數組的典型試題精選與解析 161
4.5.1  典型試題 161
4.5.2  答案解析 165
4.6  廣義表的內容精要 171
4.6.1  廣義表的定義 171
4.6.2  廣義表的頭尾鍊錶存儲結構及基本運算 172
4.6.3  廣義表的擴展線性鍊錶存儲 176
4.6.4  典型例題解析 179
4.7  廣義表的典型試題精選與解析 186
4.7.1  典型試題 186
4.7.2  答案解析 187
4.8  歸納總結 189
第5章  樹 191
5.1  知識點 191
5.2  樹的內容精要(1)─樹和二叉樹的定義及性質 191
5.2.1  樹的定義和基本概念 191
5.2.2  樹的邏輯表示 193
5.2.3  二叉樹的定義 193
5.2.4  二叉樹的性質 195
5.2.5  二叉樹的存儲表示與實現 196
5.3  樹的典型試題精選與解析(1) 198
5.3.1  典型試題 198
5.3.2  答案解析 199
5.4  樹的內容精要(2)─二叉樹的遍歷和線索化 200
5.4.1  二叉樹的遍歷 200
5.4.2  線索二叉樹 207
5.4.3  典型例題解析 211
5.5  樹的典型試題精選與解析(2) 213
5.5.1  典型試題 213
5.5.2  答案解析 219
5.6  樹的內容精要(3)─樹的存儲結構和樹、森林的轉換 233
5.6.1  樹的存儲結構 233
5.6.2  樹、森林與二叉樹的轉換 235
5.6.3  樹和森林的遍歷 238
5.6.4  哈夫曼樹 239
5.6.5  典型例題解析 241
5.7  樹的典型試題精選與解析(3) 249
5.7.1  典型試題 249
5.7.2  答案解析 251
5.8  歸納總結 257
第6章  圖 258
6.1  知識點 258
6.2  圖的內容精要(1)─圖的定義及相關概念 258
6.2.1  圖的定義和基本概念 258
6.2.2  圖的存儲結構 261
6.3  圖的典型試題精選與解析(1) 266
6.3.1  典型試題 266
6.3.2  答案解析 268
6.4  圖的內容精要(2)─圖的遍歷 270
6.4.1  圖的深度優先搜索 270
6.4.2  圖的廣度優先搜索 272
6.4.3  典型例題解析 273
6.5  圖的典型試題精選與解析(2) 279
6.5.1  典型試題 279
6.5.2  答案解析 281
6.6  圖的內容精要(3)─圖的應用 293
6.6.1  #小生成樹 293
6.6.2  AOV網與拓撲排序 298
6.6.3  AOE網與關鍵路徑 301
6.6.4  #短路徑 303
6.6.5  典型例題解析 309
6.7  圖的典型試題精選與解析(3) 313
6.7.1  典型試題 313
6.7.2  答案解析 316
6.8  歸納總結 322
第7章  查找 323
7.1  知識點 323
7.2  查找的內容精要(1)─查找的定義及相關概念 323
7.2.1  查找的基本概念 323
7.2.2  順序表的查找 324
7.2.3  有序順序表的查找 325
7.2.4  索引順序表的查找 327
7.3  查找的典型試題精選與解析(1) 329
7.3.1  典型試題 329
7.3.2  答案解析 331
7.4  查找的內容精要(2)─動態查找 334
7.4.1  二叉排序樹 334
7.4.2  ping衡二叉樹 339
7.4.3  B-樹與B+樹 343
7.5  查找的典型試題精選與解析(2) 347
7.5.1  典型試題 347
7.5.2  答案解析 349
7.6  查找的內容精要(3)─哈希表 354
7.6.1  哈希表的定義 354
7.6.2  哈希函數的構造方法 355
7.6.3  處理衝突的方法 356
7.6.4  哈希表應用舉例 358
7.7  查找的典型試題精選與解析(3) 362
7.7.1  典型試題 362
7.7.2  試題分析 363
7.8  歸納總結 366
第8章  排序 367
8.1  知識點 367
8.2  排序的內容精要 367
8.2.1  插入排序 367
8.2.2  選擇排序 372
8.2.3  交換排序 379
8.2.4  歸併排序 383
8.2.5  基數排序 384
8.3  排序的典型試題精選與解析 387
8.3.1  典型試題 387
8.3.2  答案解析 389
8.4  歸納總結 398
參考文獻 400


作者介紹


陳銳,鄭州輕工業大學講師,有多年教學實踐經驗,著有相關圖書《數據結構與算法詳解》《Visual Basic多功能教材》《數據結構(C語言實現)》《零基礎學數據結構》《C/C++函數與算法速查大辭典》。精通數據結構與算法、機器學習等領域,從事數據結構與算法方面的教學和人工智能科研等工作。




相關書籍

21天學通 C++ (第8版)

作者 悉達多·饒 (Siddhartha Rao)

2021-10-01

mmWave Massive MIMO: A Paradigm for 5G

作者 Shahid Mumtaz Jonathan Rodriguez Linglong Dai

2021-10-01

白話 C++ 之練功

作者 莊嚴

2021-10-01