數(shù)據(jù)結(jié)構(gòu)——基于Python語言(微課版)
定 價:59 元
- 作者:周翔
- 出版時間:2024/2/1
- ISBN:9787121473852
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.12;TP311.561
- 頁碼:272
- 紙張:
- 版次:01
- 開本:16開
數(shù)據(jù)結(jié)構(gòu)是計算機(jī)相關(guān)專業(yè)一門重要的專業(yè)基礎(chǔ)課程。本書基于Python語言系統(tǒng)介紹數(shù)據(jù)結(jié)構(gòu)的知識,內(nèi)容包括數(shù)據(jù)結(jié)構(gòu)與算法概述、線性表、棧與隊列、串、數(shù)組與廣義表、基于線性表的查找算法、基于線性表的排序算法、樹、基于樹的查找算法、基于樹的排序算法、圖、計算式查找法。
周翔,福州理工學(xué)院計算與信息科學(xué)學(xué)院智能科學(xué)與技術(shù)專業(yè)帶頭人,省級一流本科課程線上線下混合式《數(shù)據(jù)結(jié)構(gòu)》課程負(fù)責(zé)人。在多年的教學(xué)與科研工作中,一直積極探索人工智能與大數(shù)據(jù)等前沿技術(shù)與本科基礎(chǔ)學(xué)科之間如何有效融合的教學(xué)方式的改革與創(chuàng)新,從而建設(shè)能夠有效提高學(xué)生實踐創(chuàng)新能力為目標(biāo)的課程體系,最終構(gòu)建以新工科教育新模式為前提,助力地方區(qū)域新興產(chǎn)業(yè)發(fā)展的一流智能科學(xué)與技術(shù)專業(yè)的目標(biāo)。省級一流本科課程認(rèn)定1門,校級一流本科課程立項2門,其中1門已結(jié)題;參與省級教學(xué)改革項目2項;省級中青年項目立項2項,其中1項已結(jié)題;發(fā)表教改論文1篇,科研論文4篇,其中EI1篇,核心1篇,學(xué)報3篇;實用新型專利2項,軟件著作權(quán)8項,科技成果轉(zhuǎn)化金額為5萬,獲得校級教學(xué)成果獎1項、教學(xué)競賽2項、教學(xué)優(yōu)秀獎1項、榮譽(yù)稱號2項。
第1章 數(shù)據(jù)結(jié)構(gòu)與算法概述 / 1
1.1 數(shù)據(jù)結(jié)構(gòu) / 1
1.1.1 什么是數(shù)據(jù)結(jié)構(gòu) / 1
1.1.2 數(shù)據(jù)結(jié)構(gòu)的分類 / 3
1.1.3 數(shù)據(jù)類型與抽象數(shù)據(jù)類型 / 6
1.2 算法 / 7
1.3 算法分析 / 9
1.3.1 算法的時間復(fù)雜度 / 10
1.3.2 算法的空間復(fù)雜度 / 13
1.4 本章習(xí)題 / 13
第2章 線性表 / 15
2.1 什么是線性表 / 15
2.2 順序表 / 16
2.2.1 順序表的定義 / 16
2.2.2 順序表的實現(xiàn) / 17
2.3 單鏈表 / 24
2.3.1 單鏈表的定義 / 24
2.3.2 單鏈表的實現(xiàn) / 25
2.4 雙向鏈表 / 34
2.4.1 雙向鏈表的定義 / 34
2.4.2 雙向鏈表的實現(xiàn) / 34
2.5 循環(huán)鏈表 / 38
2.5.1 循環(huán)鏈表的定義 / 38
2.5.2 循環(huán)鏈表的實現(xiàn) / 39
2.6 線性表的比較 / 42
2.6.1 順序表與鏈表的比較 / 42
2.6.2 鏈?zhǔn)酱鎯Ψ绞降谋容^ / 42
2.7 線性表的應(yīng)用 / 43
2.7.1 一元多項式的表示及相加 / 43
2.7.2 約瑟夫環(huán) / 47
2.8 本章實驗:線性表初探 / 49
2.9 本章習(xí)題 / 50
第3章 棧與隊列 / 53
3.1 什么是棧 / 53
3.2 棧的實現(xiàn) / 54
3.2.1 順序棧存儲實現(xiàn) / 54
3.2.2 雙端棧存儲實現(xiàn) / 57
3.2.3 鏈棧存儲實現(xiàn) / 59
3.3 棧與遞歸 / 61
3.3.1 遞歸的概念 / 61
3.3.2 棧的應(yīng)用 / 63
3.4 什么是隊列 / 66
3.5 隊列的實現(xiàn) / 66
3.5.1 順序隊列的實現(xiàn) / 66
3.5.2 循環(huán)隊列的實現(xiàn) / 68
3.5.3 鏈?zhǔn)疥犃械膶崿F(xiàn) / 71
3.6 隊列的應(yīng)用 / 74
3.7 討論課:如何選擇合適的線性表解決實際問題 / 75
3.8 本章實驗:棧的定義與應(yīng)用 / 75
3.9 本章習(xí)題 / 76
第4章 串 / 78
4.1 什么是串 / 78
4.2 串的存儲結(jié)構(gòu) / 78
4.2.1 串的順序存儲實現(xiàn) / 78
4.2.2 串的鏈?zhǔn)酱鎯崿F(xiàn) / 83
4.3 串的模式匹配算法 / 83
4.3.1 樸素的模式匹配算法 / 83
4.3.2 KMP算法 / 85
4.4 綜合實驗:校友通訊錄—線性表的應(yīng)用 / 89
4.5 本章習(xí)題 / 90
第5章 數(shù)組與廣義表 / 92
5.1 數(shù)組 / 92
5.2 矩陣存儲 / 93
5.2.1 特殊矩陣 / 93
5.2.2 稀疏矩陣 / 94
5.3 廣義表 / 100
5.3.1 廣義表的定義 / 100
5.3.2 廣義表的存儲結(jié)構(gòu) / 101
5.3.3 廣義表的遞歸運(yùn)算 / 102
5.4 本章習(xí)題 / 105
第6章 基于線性表的查找算法 / 107
6.1 查找概述 / 107
6.2 順序表查找法 / 108
6.3 折半查找法 / 108
6.4 索引順序查找法 / 111
6.5 本章實驗:折半查找 / 113
6.6 本章習(xí)題 / 113
第7章 基于線性表的排序算法 / 115
7.1 排序的概念及分類 / 115
7.2 插入排序 / 116
7.2.1 直接插入排序 / 116
7.2.2 折半插入排序 / 119
7.2.3 希爾排序 / 119
7.3 交換排序 / 120
7.3.1 冒泡排序 / 121
7.3.2 快速排序 / 123
7.4 歸并排序 / 124
7.5 本章實驗:冒泡排序改動算法 / 126
7.6 本章習(xí)題 / 127
第8章 樹 / 129
8.1 樹 / 129
8.1.1 什么是樹 / 129
8.1.2 樹的基本概念及常用術(shù)語 / 130
8.2 樹的存儲結(jié)構(gòu) / 131
8.2.1 雙親表示法 / 131
8.2.2 孩子表示法 / 132
8.2.3 孩子兄弟表示法 / 132
8.3 二叉樹 / 134
8.3.1 什么是二叉樹 / 134
8.3.2 二叉樹的分類 / 134
8.3.3 二叉樹的性質(zhì) / 135
8.4 二叉樹的存儲結(jié)構(gòu) / 137
8.4.1 二叉樹的順序存儲 / 137
8.4.2 二叉樹的鏈?zhǔn)酱鎯?/ 138
8.5 樹的遍歷與應(yīng)用 / 139
8.5.1 二叉樹的遍歷 / 139
8.5.2 二叉樹的應(yīng)用 / 143
8.5.3 樹的遍歷 / 147
8.6 樹的轉(zhuǎn)換、構(gòu)建與線索化 / 147
8.6.1 二叉樹與樹、森林之間的轉(zhuǎn)換 / 147
8.6.2 二叉樹的構(gòu)建 / 150
8.6.3 線索化二叉樹 / 153
8.7 哈夫曼樹 / 155
8.7.1 什么是哈夫曼樹 / 155
8.7.2 哈夫曼樹的構(gòu)造 / 155
8.7.3 哈夫曼編碼 / 156
8.7.4 哈夫曼樹的實現(xiàn) / 157
8.8 討論課:如何學(xué)習(xí)樹 / 158
8.9 本章實驗一:二叉樹的創(chuàng)建與遍歷 / 159
8.10 本章實驗二:二叉樹的查找 / 159
8.11 綜合實驗:校友通訊錄—樹的應(yīng)用 / 160
8.12 本章習(xí)題 / 161
第9章 基于樹的查找算法 / 164
9.1 二叉排序樹 / 164
9.1.1 二叉排序樹的插入 / 164
9.1.2 二叉排序樹的刪除 / 168
9.1.3 二叉排序樹的查找 / 170
9.2 平衡二叉樹 / 172
9.2.1 平衡二叉樹的定義 / 172
9.2.2 平衡二叉樹的平衡化旋轉(zhuǎn) / 173
9.3 B樹 / 177
9.3.1 B樹的查找 / 178
9.3.2 B樹的插入 / 178
9.3.3 B+樹和B*樹 / 179
9.4 本章習(xí)題 / 180
第10章 基于樹的排序算法 / 182
10.1 選擇排序 / 182
10.1.1 簡單選擇排序 / 182
10.1.2 樹形選擇排序 / 183
10.2 堆排序 / 184
10.2.1 堆的定義 / 184
10.2.2 堆的存儲 / 185
10.2.3 堆排序的思想 / 189
10.3 綜合比較 / 193
10.4 本章習(xí)題 / 194
第11章 圖 / 196
11.1 圖的基本概念 / 196
11.1.1 什么是圖 / 196
11.1.2 圖的基本術(shù)語 / 196
11.2 圖的存儲結(jié)構(gòu) / 199
11.2.1 鄰接矩陣 / 200
11.2.2 鄰接表 / 202
11.2.3 十字鏈表 / 205
11.2.4 鄰接多重表 / 207
11.3 圖的遍歷 / 207
11.3.1 深度優(yōu)先遍歷 / 208
11.3.2 廣度優(yōu)先遍歷 / 212
11.4 圖的應(yīng)用 / 216
11.4.1 最小生成樹 / 216
11.4.2 最短路徑 / 224
11.4.3 拓?fù)湫蛄?/ 235
11.4.4 關(guān)鍵路徑 / 239
11.5 討論課:圖是什么 / 245
11.6 本章實驗一:圖的鄰接矩陣定義與創(chuàng)建 / 246
11.7 本章實驗二:圖的鄰接表定義與創(chuàng)建 / 246
11.8 綜合實驗:校友通訊錄—圖的應(yīng)用 / 247
11.9 本章習(xí)題 / 248
第12章 計算式查找法 / 251
12.1 什么是哈希表 / 251
12.2 哈希函數(shù)的構(gòu)造方法 / 252
12.3 處理沖突的方法 / 253
12.3.1 開放定址法(再散列法) / 253
12.3.2 鏈地址法 / 255
12.3.3 再哈希法 / 256
12.3.4 建立公共溢出區(qū) / 256
12.4 哈希查找法 / 257
12.5 討論課:如何選擇合適的算法,達(dá)到性能的最優(yōu) / 259
12.6 綜合實驗:校友通訊錄—算法的應(yīng)用 / 259
12.7 本章習(xí)題 / 260