圖解數據結構-使用Python 版權信息
- ISBN:9787302495321
- 條形碼:9787302495321 ; 978-7-302-49532-1
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
圖解數據結構-使用Python 本書特色
本書采用豐富的圖例來闡述基本概念,并以簡潔清晰的語言來詮釋重要的理論和算法,同時配合完整的范例程序代碼,使讀者可以通過“實例 實踐”來熟悉數據結構。
本書內容共9章,先從基本的數據結構概念開始介紹,再以Python語言來實現數組、堆棧、鏈表、隊列、樹、圖、排序、查找等重要的數據結構。在附錄A提供了Python語言的快速入門,附錄B是使用Python語言實現數據結構程序時調試經驗的分享,附錄C則提供了所有課后習題的答案。
圖解數據結構-使用Python 內容簡介
本書以圖解的方式詮釋數據結構復雜的概念。以熱門的Python語言來實現如下數據結構及其算法:數組、堆棧、鏈表、隊列、樹、圖、排序、查找等。每章都有范例,用于詳解完整的算法及程序執行過程,讀者可按照個人學習進度進行練習和實踐。此外,本書提供了大量符合各章教學內容的習題,供讀者隨時檢驗自己的學習成果。附錄提供了Python語言的快速入門指南以及使用Python語言編寫范例時調試程序的經驗和技巧。
圖解數據結構-使用Python 目錄
目 錄
第1章 數據結構導論 1
1.1 數據結構的定義 2
1.1.1
數據與信息 2
1.1.2
數據的特性 3
1.1.3
數據結構的應用 3
1.2 算法 5
1.3 認識程序設計 7
1.3.1
程序開發流程 8
1.3.2
結構化程序設計 8
1.3.3
面向對象程序設計 9
1.4 算法性能分析 11
1.4.1
Big-Oh 12
1.4.2
Ω 15
1.4.3
θ 15
【課后習題】 15
第2章 數組結構 17
2.1 線性表簡介 18
2.2 認識數組 19
2.2.1
二維數組 21
2.2.2
三維數組 25
2.2.3
n維數組 27
2.3 矩陣 28
2.3.1
矩陣相加 28
2.3.2
矩陣相乘 29
2.3.3
轉置矩陣 31
2.3.4
稀疏矩陣 32
2.3.5
上三角形矩陣 35
2.3.6
下三角形矩陣 39
2.3.7
帶狀矩陣 43
2.4 數組與多項式 44
【課后習題】 46
第3章 鏈表 48
3.1 單向鏈表 49
3.1.1
建立單向鏈表 50
3.1.2
遍歷單向鏈表 51
3.1.3
在單向鏈表中插入新節點 53
3.1.4
在單向鏈表中刪除節點 58
3.1.5
單向鏈表的反轉 61
3.1.6
單向鏈表的連接功能 64
3.1.7
多項式鏈表表示法 69
3.2 環形鏈表 71
3.2.1
環形鏈表的建立與遍歷 72
3.2.2
在環形鏈表中插入新節點 74
3.2.3
在環形鏈表中刪除節點 78
3.2.4
環形鏈表的連接功能 82
3.2.5
環形鏈表與稀疏矩陣表示法 85
3.3 雙向鏈表 86
3.3.1
雙向鏈表的建立與遍歷 87
3.3.2
在雙向鏈表中插入新節點 91
3.3.3
在雙向鏈表中刪除節點 95
【課后習題】 99
第4章 堆棧 101
4.1 堆棧簡介 102
4.1.1
用列表實現堆棧 103
4.1.2
用鏈表實現堆棧 107
4.2 堆棧的應用 110
4.2.1
遞歸算法 111
4.2.2
漢諾塔問題 115
4.2.3
老鼠走迷宮 120
4.2.4
八皇后問題 125
4.3 算術表達式的表示法 128
4.3.1
中序法轉為前序法與后序法 129
4.3.2
前序法與后序法轉為中序法 135
4.3.3
中序法表達式的求值運算 137
4.3.4
前序法表達式的求值運算 138
4.3.5
后序法表達式的求值運算 139
【課后習題】 140
第5章 隊列 143
5.1 認識隊列 144
5.1.1
隊列的基本操作 144
5.1.2
用數組實現隊列 145
5.1.3
用鏈表實現隊列 148
5.2 隊列的應用 151
5.2.1
環形隊列 151
5.2.2
雙向隊列 155
5.2.3
優先隊列 159
【課后習題】 160
第6章 樹形結構 161
6.1 樹的基本概念 162
6.2 二叉樹簡介 164
6.2.1
二叉樹的定義 165
6.2.2
特殊二叉樹簡介 166
6.3 二叉樹的存儲方式 167
6.3.1
一維數組表示法 167
6.3.2
鏈表表示法 170
6.4 二叉樹遍歷 172
6.4.1
中序遍歷 173
6.4.2
后序遍歷 173
6.4.3
前序遍歷 173
6.4.4
二叉樹節點的插入與刪除 178
6.4.5
二叉運算樹 184
6.5 線索二叉樹 189
6.6 樹的二叉樹表示法 195
6.6.1
樹轉化為二叉樹 195
6.6.2
二叉樹轉換成樹 196
6.6.3
森林轉換為二叉樹 197
6.6.4
二叉樹轉換成森林 198
6.6.5
樹與森林的遍歷 199
6.6.6
確定唯一二叉樹 201
6.7 優化二叉查找樹 202
6.7.1
擴充二叉樹 202
6.7.2
霍夫曼樹 204
6.7.3
平衡樹 205
6.8
B樹 210
【課后習題】 212
第7章 圖形結構 216
7.1 圖形簡介 217
7.1.1
歐拉環與歐拉鏈 217
7.1.2
圖形的定義 218
7.1.3
無向圖 218
7.1.4
有向圖 219
7.2 圖的數據表示法 220
7.2.1
鄰接矩陣法 220
7.2.2
鄰接表法 224
7.2.3
鄰接復合鏈表法 226
7.2.4
索引表格法 228
7.3 圖的遍歷 230
7.3.1
深度優先遍歷法 230
7.3.2
廣度優先遍歷法 233
7.4 生成樹 237
7.4.1
DFS生成樹和BFS生成樹 238
7.4.2
*小生成樹 239
7.4.3
Kruskal算法 239
7.5 圖的*短路徑 244
7.5.1
單點對全部頂點 244
7.5.2
兩兩頂點間的*短路徑 248
7.6
AOV網絡與拓撲排序 251
7.7
AOE網絡 253
【課后習題】 255
第8章 排序 259
8.1 排序簡介 260
8.1.1
排序的分類 261
8.1.2
排序算法的分析 261
8.2 內部排序法 262
8.2.1
冒泡排序法 262
8.2.2
選擇排序法 266
8.2.3
插入排序法 268
8.2.4
希爾排序法 270
8.2.5
合并排序法 272
8.2.6
快速排序法 275
8.2.7
堆積排序法 278
8.2.8
基數排序法 283
【課后習題】 286
第9章 查找 289
9.1 常見的查找方法 290
9.1.1
順序查找法 290
9.1.2
二分查找法 292
9.1.3
插值查找法 294
9.1.4
斐波拉契查找法 296
9.2 哈希查找法 300
9.3 常見的哈希函數 302
9.3.1
除留余數法 302
9.3.2
平方取中法 303
9.3.3
折疊法 303
9.3.4
數字分析法 304
9.4 碰撞與溢出問題的處理 305
9.4.1
線性探測法 305
9.4.2
平方探測法 307
9.4.3
再哈希法 307
9.4.4
鏈表法 307
【課后習題】 313
附錄A Python語言快速入門 315
A.1 輕松學Python程序 316
A.2 基本數據處理 317
A.2.1
數值數據類型 317
A.2.2
布爾數據類型 317
A.2.3
字符串數據類型 318
A.3 輸入input和輸出print 318
A.3.1
輸出print 318
A.3.2
輸出轉義字符 319
A.3.3
輸入input 319
A.4 運算符與表達式 321
A.4.1
算術運算符 321
A.4.2
復合賦值運算符 321
A.4.3
關系運算符 321
A.4.4
邏輯運算符 322
A.4.5
位運算符 322
A.5 流程控制 323
A.5.1
if語句 323
A.5.2
for循環 324
A.5.3
while循環 325
A.6 其他常用的類型 327
A.6.1
string字符串 327
A.6.2
list列表 329
A.6.3
tuple 元組和dict字典 331
A.7 函數 332
A.7.1
自定義無參數函數 332
A.7.2
有參數行的函數 333
A.7.3
函數返回值 333
A.7.4
參數傳遞 333
附錄B 數據結構使用Python程序調試實錄 336
附錄C 課后習題與答案 352
展開全部
圖解數據結構-使用Python 作者簡介
現任榮欽科技股份有限公司執行長,美國Rochester Institute of Technology計算機科學研究所畢業,長期從事信息教育及計算機圖書寫作的工作,計算機圖書著作包括計算器概論、數據結構、辦公室電子數據處理、互聯網等相關題材,并監制過多套游戲以及教學軟件的研發。