圖解數據結構--使用C

圖解數據結構--使用C

《圖解數據結構--使用C》是清華大學出版社出版的圖書。

基本介紹

  • 中文名:圖解數據結構--使用C
  • 作者:胡昭民
  • 出版社:清華大學出版社
  • 出版時間:2022年11月1日
  • 頁數:356 頁 
  • 定價:89 元
  • 開本:16 開
  • 裝幀:平裝
  • ISBN:9787302618454
內容簡介,作者簡介,圖書目錄,

內容簡介

本書以圖解的方式講述數據結構及其算法,力求簡潔明了地闡述複雜的算法理論,以C作為描述語言解析算法的執行過程,以大量的範例程式來展示數據結構的使用及其相關算法的具體實現。
數據結構是計算機專業的核心課程之一,也是編程愛好者程式設計的重要基礎。本書內容包含這門必修課的完整知識體系:數組、鍊表、堆疊、佇列、樹、圖等數據結構,以及基於這些數據結構的各類算法等。為了教學的需要,每章都提供了豐富的課後習題及詳細的參考答案。
本書圖文並茂,文字簡潔、清晰,範例豐富、可操作性強,並配有視頻教學、PPT課件和範例程式源碼,適合學習數據結構和算法的讀者作為自學參考書,也適合作為高等院校計算機及信息相關專業的教材。

作者簡介

胡昭民,現任榮欽科技股份有限公司執行長,美國Rochester Institute of Technology計算機科學研究所畢業,長期從事信息教育及計算機圖書寫作的工作,計算機圖書著作包括計算器概論、數據結構、辦公室電子數據處理、網際網路等相關題材,並監製過多套遊戲以及教學軟體的研發。

圖書目錄

目 錄
第1章 數據結構入門與算法 1
1.1 數據結構的定義 2
1.1.1 數據與信息 2
1.1.2 數據的特性 3
1.1.3 數據結構的套用 4
1.2 算法 6
1.2.1 算法的條件 6
1.2.2 算法的表達方式 7
1.3 常見算法簡介 9
1.3.1 分治法 9
1.3.2 貪心法 10
1.3.3 枚舉法 11
1.3.4 帕斯卡三角形算法 13
1.3.5 質數求解算法 14
1.4 算法性能的分析 15
1.4.1 Big-Oh 16
1.4.2 Ω(omega) 18
1.4.3 θ(theta) 19
本章習題 19
第2章 數組結構 21
2.1 線性表簡介 21
2.2 認識數組 23
2.2.1 二維數組 26
2.2.2 三維數組 29
2.2.3 n維數組 32
2.3 矩陣 33
2.3.1 矩陣相加 34
2.3.2 矩陣相乘 35
2.3.3 轉置矩陣 37
2.3.4 稀疏矩陣 38
2.3.5 上三角矩陣 41
2.3.6 下三角矩陣 45
2.3.7 帶狀矩陣 49
2.4 數組與多項式 49
本章習題 51
第3章 鍊表 53
3.1 動態分配記憶體 53
3.2 單向鍊表 55
3.2.1 單向鍊表的建立 55
3.2.2 單向鍊表的遍歷 57
3.2.3 單向鍊表中新節點的插入 58
3.2.4 單向鍊表中節點的刪除 62
3.2.5 單向鍊表的反轉 66
3.2.6 單向鍊表的串接 69
3.2.7 多項式鍊表表示法 73
3.3 環形鍊表 74
3.3.1 環形鍊表的建立與遍歷 75
3.3.2 環形鍊表中新節點的插入 77
3.3.3 環形鍊表中節點的刪除 78
3.3.4 環形鍊表的串接 82
3.3.5 稀疏矩陣的環形鍊表表示法 84
3.4 雙向鍊表 87
3.4.1 雙向鍊表的建立與遍歷 87
3.4.2 雙向鍊表中新節點的插入 90
3.4.3 雙向鍊表中節點的刪除 94
本章習題 97
第4章 堆疊 99
4.1 堆疊簡介 99
4.1.1 用數組實現堆疊 100
4.1.2 用鍊表實現堆疊 103
4.2 堆疊的套用 105
4.2.1 遞歸算法 106
4.2.2 動態規划算法 110
4.2.3 漢諾塔問題 112
4.2.4 回溯法——老鼠走迷宮 118
4.2.5 八皇后問題 120
4.3 算術表達式的表示法 122
4.3.1 中序法轉為前序法與後序法 122
4.3.2 前序法與後序法表達式轉為中序法表達式 128
4.3.3 中序法求值 130
4.3.4 前序法求值 131
4.3.5 後序法求值 132
本章習題 133
第5章 佇列 136
5.1 認識佇列 136
5.1.1 佇列的基本操作 137
5.1.2 用數組來實現佇列 137
5.1.3 用鍊表來實現佇列 140
5.2 環形佇列、雙向佇列與優先佇列 143
5.2.1 環形佇列 143
5.2.2 雙向佇列 147
5.2.3 優先佇列 150
本章習題 151
第6章 樹結構 153
6.1 樹的基本概念 154
6.2 二叉樹 156
6.2.1 二叉樹的定義 156
6.2.2 特殊二叉樹簡介 157
6.3 二叉樹的存儲方式 159
6.3.1 用一維數組來實現二叉樹 159
6.3.2 用鍊表來實現二叉樹 161
6.4 二叉樹的遍歷 164
6.4.1 中序遍歷 164
6.4.2 後序遍歷 165
6.4.3 前序遍歷 166
6.4.4 二叉樹節點的插入與刪除 170
6.4.5 二叉運算樹 175
6.5 線索二叉樹 177
6.6 樹的二叉樹表示法 182
6.6.1 樹轉化為二叉樹 182
6.6.2 二叉樹轉化為樹 183
6.6.3 森林轉化為二叉樹 183
6.6.4 二叉樹轉化為森林 184
6.6.5 樹與森林的遍歷 185
6.6.6 確定唯一二叉樹 187
6.7 最佳化二叉查找樹 188
6.7.1 擴充二叉樹 188
6.7.2 哈夫曼樹 189
6.8 平衡樹 190
6.9 高級樹結構的套用 194
6.9.1 博弈樹 194
6.9.2 B樹 196
6.9.3 二叉空間分割樹 198
6.9.4 四叉樹和八叉樹 199
本章習題 201
第7章 圖結構 205
7.1 圖的簡介 205
7.1.1 歐拉環與歐拉鏈 206
7.1.2 圖的定義 207
7.1.3 無向圖 207
7.1.4 有向圖 208
7.2 圖的數據表示法 209
7.2.1 鄰接矩陣法 209
7.2.2 鄰接鍊表法 212
7.2.3 鄰接複合鍊表法 214
7.2.4 索引表格法 216
7.3 圖的遍歷 218
7.3.1 深度優先遍歷 218
7.3.2 廣度優先遍歷 221
7.4 生成樹 224
7.4.1 深度優先生成樹和廣度優先生成樹 225
7.4.2 最小生成樹 225
7.4.3 Kruskal算法 226
7.4.4 Prim算法 230
7.5 圖的最短路徑 232
7.5.1 單點對全部頂點——Dijkstra算法 232
7.5.2 兩兩頂點間的最短路徑——Floyd算法 236
7.5.3 A* 算法 238
7.6 AOV網路與拓撲排序 240
7.7 AOE網路 242
本章習題 243
第8章 排序 247
8.1 排序簡介 247
8.1.1 排序的分類 248
8.1.2 排序算法分析 248
8.2 內部排序法 249
8.2.1 冒泡排序法 250
8.2.2 選擇排序法 253
8.2.3 插入排序法 254
8.2.4 希爾排序法 256
8.2.5 合併排序法 258
8.2.6 快速排序法 259
8.2.7 堆積排序法 262
8.2.8 基數排序法 266
8.3 外部排序法 269
8.3.1 直接合併排序法 269
8.3.2 k-路合併法 273
本章習題 273
第9章 查找與哈希函式 277
9.1 常見的查找算法 277
9.1.1 順序查找法 278
9.1.2 二分查找法 280
9.1.3 插值查找法 282
9.1.4 斐波那契查找法 284
9.1.5 哈希查找法 288
9.2 常見的哈希法 289
9.2.1 除留餘數法 289
9.2.2 平方取中法 290
9.2.3 摺疊法 291
9.2.4 數字分析法 291
9.3 碰撞與溢出問題的處理 292
9.3.1 線性探測法 292
9.3.2 平方探測法 294
9.3.3 再哈希法 294
9.3.4 鍊表法 294
本章習題 298
附錄A 課後習題與參考答案 301
附錄B 數據結構專有名詞索引(電子版見下載) 357

相關詞條

熱門詞條

聯絡我們