圖解數據結構與算法

圖解數據結構與算法

《圖解數據結構與算法》是2020年人民郵電出版社出版的圖書,作者是汪建。

基本介紹

  • 中文名:圖解數據結構與算法
  • 作者:汪建
  • 出版時間:2020年
  • 出版社:人民郵電出版社
  • ISBN:9787115498281
  • 類別:程式設計
  • 開本:16 開
  • 裝幀:平裝
內容簡介,作者簡介,圖書目錄,

內容簡介

《圖解數據結構與算法》是一本“少字多圖”、以圖描述原理、形象且易於理解的數據結構與算法圖書。全書共分為7章,首先介紹了一些基礎的數據結構,包括數組、鍊表、棧和佇列等;然後通過例子來講解遞歸和動態規劃的算法思想;接著對樹進行了講解,包括二叉樹、二叉搜尋樹、AVL樹、紅黑樹、2-3樹、B樹以及Trie樹等不同用途的樹;在樹的基礎上講解了堆,包括二叉堆、二項堆和斐波那契堆三種堆結構;還講解了圖結構,主要包括圖的表示方式、圖的遍歷、圖的*短路徑以及*小生成樹;*後講解了比較排序和非比較排序,其中,比較排序包括選擇排序、冒泡排序、插入排序、快速排序、希爾排序、合併排序和堆排序等,而非比較排序則包括計數排序、基數排序和桶排序等。 《圖解數據結構與算法》適合對數據結構和算法感興趣並且想要通過一種輕鬆的方式學習和掌握數據結構與算法的讀者閱讀。無論他們是否有編程基礎,均可看懂本書。

作者簡介

汪建(seaboat),畢業於廣東工業大學光信息科學與技術專業,畢業後從事各類業務系統、中間件、基礎架構和人工智慧系統等方向的研發工作,目前致力於用AI來提升企業業務系統效率並節約人力成本。擅長工程算法、人工智慧算法、自然語言處理、架構、分散式、高並發、大數據和搜尋引擎等方面的技術,大多數程式語言都會使用,但更擅長Java、Python和C 。平時喜歡看書、寫作和運動,擅長籃球、跑步、游泳、健身和羽毛球等運動項目。崇尚開源,崇尚技術自由,更崇尚思想自由。 個人部落格為blog.csdn.net/wangyangzhizhou。大家也可以掃描下方二維碼或在微信中搜尋“遠洋號”關注作者的個人公眾號。

圖書目錄

第 1章 基礎數據結構 1
1.1 數組 1
1.1.1 一維數組 1
1.1.2 二維數組 2
1.1.3 三維及更高維數組 3
1.2 鍊表 4
1.2.1 單向鍊表 5
1.2.2 雙向鍊表 14
1.3 棧 19
1.3.1 基於數組的棧 19
1.3.2 基於鍊表的棧 21
1.4 佇列 23
1.4.1 基於數組的佇列 23
1.4.2 基於鍊表的佇列 26
第 2章 遞歸與動態規劃 28
2.1 遞歸 28
2.1.1 階乘 28
2.1.2 斐波那契數列 30
2.2 動態規劃 32
2.2.1 斐波那契數列 33
2.2.2 長公共子序列 36
第3章 樹 45
3.1 二叉樹 46
3.1.1 完全二叉樹 47
3.1.2 滿二叉樹 48
3.1.3 平衡二叉樹 48
3.2 二叉搜尋樹 49
3.2.1 性質 49
3.2.2 插入操作 50
3.2.3 插入順序性 51
3.2.4 查找操作 53
3.2.5 中序前驅節點 54
3.2.6 中序後繼節點 56
3.2.7 刪除操作 58
3.3 AVL樹 61
3.3.1 性質 61
3.3.2 二叉搜尋樹的平衡 62
3.3.3 為什麼要旋轉 63
3.3.4 插入類型及旋轉 63
3.3.5 插入操作 67
3.3.6 查找操作 68
3.3.7 刪除操作 69
3.4 紅黑樹 71
3.4.1 性質 71
3.4.2 旋轉和變色 72
3.4.3 插入操作 72
3.4.4 查找操作 79
3.4.5 刪除操作 80
3.5 2-3樹 86
3.5.1 性質 86
3.5.2 插入操作 87
3.5.3 查找操作 89
3.5.4 刪除操作 91
3.6 B樹 98
3.6.1 性質 98
3.6.2 插入操作 99
3.6.3 查找操作 102
3.6.4 刪除操作 102
3.7 Trie樹 109
3.7.1 性質 109
3.7.2 插入操作 109
3.7.3 查找操作 111
3.7.4 刪除操作 113
第4章 堆 117
4.1 二叉堆 117
4.1.1 二叉堆的性質 117
4.1.2 二叉堆的實現 118
4.1.3 二叉堆的作用 118
4.1.4 插入操作 118
4.1.5 刪除操作 121
4.1.6 構建操作 123
4.2 二項堆 125
4.2.1 結構與性質 125
4.2.2 插入與合併 126
4.2.3 查找(小)值 129
4.2.4 刪除(小)值 131
4.3 斐波那契堆 133
4.3.1 結構及性質 133
4.3.2 斐波那契數列 134
4.3.3 插入操作 135
4.3.4 獲取小節點 136
4.3.5 合併兩個斐波那
契堆 136
4.3.6 刪除小鍵
值節點 136
4.3.7 減小節點鍵值 139
4.3.8 刪除節點 142
第5章 圖 143
5.1 圖的表示方式 144
5.2 圖的遍歷 145
5.2.1 廣度優先搜尋 146
5.2.2 深度優先搜尋 151
5.3 圖的短路徑 158
5.3.1 Dijkstra算法 158
5.3.2 Floyd算法 166
5.4 小生成樹 177
5.4.1 Prim算法 178
5.4.2 並查集 185
5.4.3 Kruskal算法 190
第6章 比較排序 196
6.1 選擇排序 196
6.1.1 排序要點 196
6.1.2 排序性能 197
6.1.3 排序過程 197
6.1.4 穩定性 199
6.2 冒泡排序 200
6.2.1 排序要點 201
6.2.2 排序性能 201
6.2.3 排序過程 201
6.3 插入排序 203
6.3.1 排序要點 203
6.3.2 排序性能 204
6.3.3 排序過程 204
6.4 快速排序 207
6.4.1 排序要點 207
6.4.2 排序性能 207
6.4.3 排序過程 208
6.5 希爾排序 213
6.5.1 排序要點 214
6.5.2 排序性能 214
6.5.3 排序過程 214
6.6 合併排序 219
6.6.1 排序要點 220
6.6.2 排序性能 220
6.6.3 排序過程 220
6.7 堆排序 230
6.7.1 排序要點 230
6.7.2 排序性能 231
6.7.3 排序過程 231
第7章 非比較排序 236
7.1 計數排序 236
7.1.1 不考慮穩定性的
情況 236
7.1.2 考慮穩定性的情況 239
7.1.3 計數排序的局限 247
7.2 基數排序 247
7.2.1 排序性能 247
7.2.2 排序方式 247
7.2.3 基於計數排序的
實現 248
7.2.4 基於桶的實現 253
7.2.5 MSD排序方式 257
7.3 桶排序 260
7.3.1 排序性能 260
7.3.2 排序要點 261
7.3.3 桶的區間 261
7.3.4 排序過程 261

相關詞條

熱門詞條

聯絡我們