《趣學數據結構》是2020年3月人民郵電出版社出版的圖書,作者是陳小玉。
基本介紹
- 中文名:趣學數據結構
- 作者:陳小玉
- ISBN:9787115513830
- 頁數:478頁
- 定價:99元
- 出版社:人民郵電出版社
- 出版時間:2020年3月
- 裝幀:平裝
- 開本:16開
內容簡介,圖書目錄,
內容簡介
本書基於C++語言編寫,從趣味故事引入算法複雜性計算及數據結構基礎內容,涵蓋線性結構、樹形結構和圖形結構,包括鍊表、棧和佇列、樹和圖的套用等。本書內容還涉及數據結構的基本套用(包括各種查找、排序等)和高級套用(包括優先佇列、並查集、B-樹、B+樹和紅黑樹等)。通過大量圖解將抽象數據模型簡單通俗化,語言表述淺顯易懂,並結合有趣的實例幫助讀者輕鬆掌握數據結構。
圖書目錄
第 1章 數據結構入門 1
1.1 數據結構基礎知識 2
1.2 算法複雜度 10
1.3 一棋盤麥子 17
1.4 神奇魔鬼序列 18
1.5 本章要點 23
第 2章 線性表 24
2.1 順序表 25
2.1.1 靜態分配 25
2.1.2 動態分配 26
2.1.3 順序表的基本操作 28
2.2 單鍊表 35
2.2.1 單鍊表的存儲方式 35
2.2.2 單鍊表的基本操作 37
2.3 雙向鍊表 48
2.3.1 雙向鍊表的存儲方式 48
2.3.2 雙向鍊表的基本操作 48
2.4 循環鍊表 54
2.5 線性表的套用 55
2.5.1 合併有序順序表 55
2.5.2 合併有序鍊表 60
2.5.3 就地逆置單鍊表 64
2.5.4 查找鍊表的中間節點 68
2.5.5 刪除鍊表中的重複元素 71
2.6 線性表學習秘籍 75
第3章 棧和佇列 78
3.1 順序棧 79
3.2 鏈棧 83
3.3 順序佇列 87
3.3.1 順序佇列的定義 88
3.3.2 循環佇列的定義 92
3.3.3 循環佇列的基本操作 96
3.4 鏈佇列 98
3.5 棧和佇列的套用 102
3.5.1 數制的轉換 102
3.5.2 回文判定 104
3.5.3 雙端佇列 106
3.6 棧和佇列學習秘籍 116
第4章 字元串 121
4.1 字元串 122
4.2 模式匹配BF算法 124
4.3 模式匹配KMP算法 128
4.4 改進的KMP算法 133
4.5 字元串的套用——病毒檢測 135
4.6 字元串學習秘籍 137
第5章 數組與廣義表 139
5.1 數組的順序存儲 140
5.2 特殊矩陣的壓縮存儲 143
5.2.1 對稱矩陣 143
5.2.2 三角矩陣 145
5.2.3 對角矩陣 146
5.2.4 稀疏矩陣 150
5.3 廣義表 151
5.4 好玩貪吃蛇——數字矩陣 151
5.5 數組與廣義表學習秘籍 156
第6章 樹 158
6.1 樹 159
6.1.1 樹的定義 159
6.1.2 樹的存儲結構 162
6.1.3 樹、森林與二叉樹的轉換 165
6.2 二叉樹 167
6.2.1 二叉樹的性質 168
6.2.2 二叉樹的存儲結構 173
6.2.3 二叉樹的創建 175
6.3 二叉樹的遍歷 183
6.3.1 先序遍歷 183
6.3.2 中序遍歷 186
6.3.3 後序遍歷 188
6.3.4 層次遍歷 192
6.4 線索二叉樹 196
6.4.1 線索二叉樹存儲結構 196
6.4.2 構造線索二叉樹 197
6.4.3 遍歷線索二叉樹 201
6.5 樹和森林的遍歷 204
6.5.1 樹的遍歷 204
6.5.2 森林的遍歷 209
6.6 樹的套用 212
6.6.1 二叉樹的深度 212
6.6.2 二叉樹的葉子數 213
6.6.3 三元組創建二叉樹 214
6.6.4 遍歷序列還原樹 218
6.6.5 哈夫曼樹 223
6.7 樹學習秘籍 239
第7章 圖 241
7.1 圖的基本術語 242
7.2 圖的存儲結構 249
7.2.1 鄰接矩陣 250
7.2.2 鄰接表 256
7.2.3 十字鍊表 266
7.2.4 鄰接多重表 268
7.3 圖的遍歷 270
7.3.1 廣度優先搜尋 270
7.3.2 深度優先搜尋 275
7.4 圖的套用 279
7.4.1 單源最短路徑——Dijkstra 279
7.4.2 各頂點之間最短路徑——Floyd 287
7.4.3 最小生成樹——prim 293
7.4.4 最小生成樹——kruskal 305
7.4.5 拓撲排序 308
7.4.6 關鍵路徑 316
7.5 圖學習秘籍 324
第8章 查找 327
8.1 線性表查找 328
8.1.1 順序查找 328
8.1.2 折半查找 330
8.2 樹表查找 335
8.2.1 二叉查找樹 335
8.2.2 平衡二叉查找樹 346
8.3 散列表的查找 361
8.3.1 散列函式 361
8.3.2 處理衝突的方法 364
8.3.3 散列查找及性能分析 376
8.4 查找學習秘籍 378
第9章 排序 379
9.1 插入排序 381
9.1.1 直接插入排序 381
9.1.2 希爾排序 387
9.2 交換排序 389
9.2.1 冒泡排序 389
9.2.2 快速排序 392
9.3 選擇排序 401
9.3.1 簡單選擇排序 401
9.3.2 堆排序 403
9.4 合併排序 412
9.5 分配排序 417
9.5.1 桶排序 417
9.5.2 基數排序 418
9.6 排序學習秘籍 421
第 10章 高級數據結構 425
10.1 並查集 426
10.2 優先佇列 430
10.2.1 出隊 431
10.2.2 入隊 433
10.2.3 構建初始堆 435
10.3 B-樹 437
10.3.1 樹高與性能 439
10.3.2 查找 440
10.3.3 插入 441
10.3.4 刪除 444
10.4 B+樹 449
10.4.1 查找 450
10.4.2 插入 451
10.4.3 刪除 454
10.5 紅黑樹 457
10.5.1 紅黑樹的定義 457
10.5.2 樹高與性能 458
10.5.3 紅黑樹與4階B樹 459
10.5.4 查找 460
10.5.5 插入 460
10.5.6 刪除 466
10.6 高級數據結構學習秘籍 476