數(shù)據(jù)結(jié)構(gòu)(Python語言描述)(微課版)
定 價:49.8 元
- 作者:李粵平,王梅 著
- 出版時間:2020/8/1
- ISBN:9787115531520
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.12
- 頁碼:250
- 紙張:
- 版次:01
- 開本:16開
本書介紹了常用的數(shù)據(jù)結(jié)構(gòu),全書分為10章,依次為緒論、線性表、棧和隊列、串、廣義表、樹和二叉樹、常用二叉樹、圖、排序及查找。本書采用Python語言來描述和實現(xiàn)各種數(shù)據(jù)結(jié)構(gòu),內(nèi)容豐富,知識點完整,結(jié)構(gòu)層次分明,通過大量插圖來講解算法實現(xiàn)過程,有利于讀者理解并鞏固數(shù)據(jù)結(jié)構(gòu)的相關(guān)算法思想。
本書可以作為高職高專院校計算機及相關(guān)專業(yè)的教材,也適合軟件開發(fā)人員參考使用。
(1)本書運用大量結(jié)合著文字的插圖來介紹數(shù)據(jù)結(jié)構(gòu)中的算法,圖文并茂,使讀者更加容易理解算法的本質(zhì)。
(2)由于不同的數(shù)據(jù)結(jié)構(gòu)的應(yīng)用場景不同,本書講述了許多不同的應(yīng)用實例,這有利于讀者明確數(shù)據(jù)結(jié)構(gòu)的真實使用場景。
(3)每章后面都附有小結(jié)和習(xí)題,讀者學(xué)完一章后仔細完成章末習(xí)題,有利于讀者加深對該課程的理解,學(xué)會獨立思考和解決問題。
李粵平,博士后,深圳職業(yè)技術(shù)學(xué)院副教授,主要研究方向為數(shù)據(jù)挖據(jù)和圖像識別。2008年,畢業(yè)于中山大學(xué),獲博士學(xué)位。2009年-2012年在哈爾濱工業(yè)大學(xué)從事博士后研究,獲中國博士后科學(xué)基金一等資助。2010 年起開始進行機器學(xué)習(xí)方面的研究,并在模式識別領(lǐng)域也進行了多年研究,理論知識扎實。2012年,所在視覺計算與圖像處理研發(fā)團隊,獲學(xué)?蒲袌F隊立項。主持開發(fā)了學(xué)校《Python語言及其應(yīng)用》《數(shù)據(jù)結(jié)構(gòu)》《計算機視覺》《算法分析與設(shè)計》和《機器學(xué)習(xí)實戰(zhàn)》等課程。
第 1章 緒論 1
1.1 基本概念和術(shù)語 1
1.2 邏輯結(jié)構(gòu)與存儲結(jié)構(gòu) 2
1.2.1 邏輯結(jié)構(gòu) 2
1.2.2 存儲結(jié)構(gòu) 3
1.3 算法 3
1.3.1 算法的定義 3
1.3.2 算法的特性 4
1.3.3 算法的設(shè)計要求 4
1.3.4 算法的效率評價 5
1.3.5 算法的時間復(fù)雜度 5
1.3.6 算法的空間復(fù)雜度 7
1.4 小結(jié) 7
1.5 習(xí)題 8
第 2章 線性表 10
2.1 定義 10
2.2 順序表 10
2.2.1 存儲結(jié)構(gòu) 10
2.2.2 基本操作 11
2.3 單鏈表 14
2.3.1 存儲結(jié)構(gòu) 14
2.3.2 基本操作 15
2.3.3 單鏈表與順序表的比較 22
2.4 雙鏈表 23
2.4.1 存儲結(jié)構(gòu) 23
2.4.2 基本操作 23
2.5 循環(huán)鏈表 31
2.5.1 存儲結(jié)構(gòu) 31
2.5.2 基本操作 31
2.6 鏈表的應(yīng)用 36
2.6.1 約瑟夫環(huán) 36
2.6.2 多項式相加 39
2.7 小結(jié) 42
2.8 習(xí)題 43
第3章 棧和隊列 44
3.1 !44
3.1.1 定義 44
3.1.2 基本概念 44
3.1.3 順序!45
3.1.4 鏈棧 47
3.1.5 棧的應(yīng)用 49
3.2 隊列 55
3.2.1 定義 55
3.2.2 基本概念 55
3.2.3 順序隊列 56
3.2.4 鏈?zhǔn)疥犃小?0
3.2.5 隊列的應(yīng)用 63
3.3 小結(jié) 68
3.4 習(xí)題 68
第4章 串 70
4.1 串的定義 70
4.2 串的模式匹配算法 70
4.2.1 Brute-Force算法 71
4.2.2 KMP算法 73
4.3 小結(jié) 80
4.4 習(xí)題 80
第5章 廣義表 81
5.1 定義 81
5.2 基本術(shù)語 81
5.3 存儲結(jié)構(gòu) 82
5.4 基本操作 83
5.5 廣義表的應(yīng)用 83
5.6 小結(jié) 86
5.7 習(xí)題 86
第6章 樹和二叉樹 87
6.1 樹 87
6.1.1 樹的定義 87
6.1.2 基本術(shù)語 88
6.1.3 存儲結(jié)構(gòu) 89
6.2 二叉樹 92
6.2.1 二叉樹的定義 92
6.2.2 二叉樹的基本形態(tài) 92
6.2.3 滿二叉樹和完全二叉樹 93
6.2.4 二叉樹的性質(zhì) 94
6.2.5 順序存儲結(jié)構(gòu) 95
6.2.6 鏈?zhǔn)酱鎯Y(jié)構(gòu) 96
6.2.7 遍歷二叉樹 98
6.2.8 二叉樹的其他操作 101
6.3 樹和森林 102
6.3.1 樹轉(zhuǎn)換為二叉樹 102
6.3.2 森林轉(zhuǎn)換為二叉樹 103
6.4 二叉樹的應(yīng)用 104
6.5 小結(jié) 106
6.6 習(xí)題 106
第7章 常用二叉樹 108
7.1 二叉搜索樹 108
7.2 堆 116
7.2.1 堆的定義 116
7.2.2 存儲結(jié)構(gòu) 116
7.2.3 基本操作 117
7.3 哈夫曼樹 121
7.3.1 基本術(shù)語 121
7.3.2 構(gòu)造哈夫曼樹 122
7.3.3 哈夫曼樹的實現(xiàn) 123
7.4 平衡二叉樹 125
7.4.1 存儲結(jié)構(gòu) 125
7.4.2 基本操作 126
7.5 小結(jié) 131
7.6 習(xí)題 132
第8章 圖 134
8.1 圖的基本概念 134
8.1.1 定義 134
8.1.2 基本術(shù)語 134
8.2 圖的存儲結(jié)構(gòu) 140
8.2.1 鄰接矩陣 140
8.2.2 鄰接表 143
8.2.3 十字鏈表 149
8.3 圖的遍歷 153
8.3.1 深度優(yōu)先遍歷 153
8.3.2 廣度優(yōu)先遍歷 159
8.4 最小生成樹 164
8.4.1 Prim算法 164
8.4.2 Kruskal算法 170
8.5 最短路徑 175
8.5.1 Dijkstra算法 176
8.5.2 Floyd算法 181
8.5.3 Bellman-Ford算法 188
8.6 拓撲排序 193
8.7 AOE網(wǎng)和關(guān)鍵路徑 198
8.7.1 AOE網(wǎng) 198
8.7.2 求解關(guān)鍵路徑 198
8.8 小結(jié) 206
8.9 習(xí)題 207
第9章 排序 208
9.1 插入排序 208
9.1.1 直接插入排序 208
9.1.2 希爾排序 211
9.2 選擇排序 213
9.2.1 直接選擇排序 213
9.2.2 堆排序 215
9.3 交換排序 218
9.3.1 冒泡排序 218
9.3.2 快速排序 220
9.4 歸并排序 222
9.5 小結(jié) 225
9.6 習(xí)題 225
第 10章 查找 227
10.1 基本概念 227
10.2 順序查找 228
10.3 二分查找 228
10.4 分塊查找 229
10.5 B-樹 230
10.5.1 基本概念 230
10.5.2 基本操作 230
10.6 哈希表 235
10.6.1 基本概念 235
10.6.2 構(gòu)造方法 235
10.6.3 處理沖突 236
10.7 小結(jié) 238
10.8 習(xí)題 238