數(shù)據(jù)結(jié)構(gòu)(C語言版)(第2版)
定 價:49 元
叢書名:高等院校計算機類專業(yè)"互聯(lián)網(wǎng)+"創(chuàng)新規(guī)劃教材
- 作者:陳超祥 主編
- 出版時間:2024/3/1
- ISBN:9787301347614
- 出 版 社:北京大學(xué)出版社
- 中圖法分類:TP311.12;TP312.8
- 頁碼:292
- 紙張:
- 版次:2
- 開本:16開
本書共9章,系統(tǒng)介紹了常用的數(shù)據(jù)結(jié)構(gòu)與算法方面的基本知識。第1章為緒論,引入了數(shù)據(jù)結(jié)構(gòu)與算法的一些基本概念;第2~7章分別介紹了線性表、棧、隊列、串、多維數(shù)組、樹和圖等基本的數(shù)據(jù)結(jié)構(gòu);第8章和第9章分別介紹了多種排序和查找的算法。本書引入的主要案例都源自實際項目應(yīng)用,案例、項目由企業(yè)工程師根據(jù)章節(jié)內(nèi)容設(shè)計并實現(xiàn),全部程序都在C Free 5.0或Visual C++ 6.0中調(diào)試通過。為方便讀者學(xué)習(xí)和理解,本書提供了全部案例的運行視頻,對所描述的部分?jǐn)?shù)據(jù)結(jié)構(gòu)核心算法錄制了講解視頻。本書可以作為高等院校計算機、人工智能和數(shù)據(jù)科學(xué)與大數(shù)據(jù)等相關(guān)專業(yè)的教材,也可以作為其他理工科專業(yè)的選修教材,還可供從事計算機應(yīng)用的工程技術(shù)人員參考,讀者只需掌握C語言編程的基本技術(shù)就可以學(xué)習(xí)本書。
陳超祥
----------------------------
陳超祥,教授,浙江樹人大學(xué)。國家、省級大學(xué)生校外實踐教育基地負(fù)責(zé)人,省國際服務(wù)外包人才培育基地負(fù)責(zé)人,數(shù)字媒體技術(shù)專業(yè)負(fù)責(zé)人。省服務(wù)外包競賽、多媒體競賽專家?guī)斐蓡T。省科技項目評審專家?guī)斐蓡T。主持完成國家外專項目、省自然科學(xué)基金、省公益項目、省部級教學(xué)研究與改革項目、教育廳科研項目和重大橫向課題等20多項。在學(xué)術(shù)期刊和國際會議上發(fā)表40余篇學(xué)術(shù)論文,其中20余篇發(fā)表在一級及以上核心期刊和被SCI、EI、ISTP收錄。出版專著1部。申請發(fā)明專利3項(授權(quán)1項)、新型專利7項、軟著10余項。主講數(shù)據(jù)結(jié)構(gòu)、程序設(shè)計基礎(chǔ)等課程。作為主要成員曾獲省級教學(xué)成果獎一、二等獎,曾獲浙江省“三育人”先進個人、“我心目中的好老師”、校教壇新秀、校優(yōu)秀中青年骨干教師等榮譽稱號,曾多次榮獲課堂教學(xué)質(zhì)量優(yōu)秀和教學(xué)業(yè)績考核優(yōu)秀。
第1章 緒論 1
1.1 為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu) 1
1.2 數(shù)據(jù)結(jié)構(gòu)概述 5
1.3 算法和算法分析 8
1.3.1 算法 8
1.3.2 算法分析 8
本章小結(jié) 11
本章習(xí)題 11
第2章 線性表 14
2.1 線性表的定義和基本操作 14
2.1.1 線性表的定義 15
2.1.2 線性表的基本操作 15
2.2 線性表的順序存儲、實現(xiàn)和應(yīng)用 17
2.2.1 線性表的順序存儲 17
2.2.2 順序表的操作實現(xiàn) 18
2.2.3 用順序表實現(xiàn)糧食收購入庫管理問題 22
2.3 線性表的鏈?zhǔn)酱鎯Α崿F(xiàn)和應(yīng)用 30
2.3.1 單鏈表 31
2.3.2 用單鏈表實現(xiàn)病患信息管理問題 39
2.3.3 單循環(huán)鏈表 44
2.3.4 雙鏈表 46
2.4 順序表和鏈表的比較 49
本章小結(jié) 49
本章習(xí)題 50
第3章 棧與隊列 52
3.1 棧 52
3.1.1 棧的定義 52
3.1.2 棧的基本操作 53
3.1.3 棧的順序存儲和實現(xiàn) 53
3.1.4 用棧實現(xiàn)地鐵網(wǎng)絡(luò)兩站點間最佳換乘問題 56
3.2 隊列 67
3.2.1 隊列的概念 68
3.2.2 隊列的基本操作 68
3.2.3 隊列的順序存儲和實現(xiàn) 68
3.2.4 隊列的鏈?zhǔn)酱鎯蛯崿F(xiàn) 73
3.2.5 用隊列實現(xiàn)醫(yī)院排隊叫號問題 77
本章小結(jié) 83
本章習(xí)題 83
第4章 串 86
4.1 串的類型與基本運算 86
4.1.1 串的類型定義 86
4.1.2 串的基本運算 86
4.2 串的存儲 89
4.2.1 串的順序存儲 89
4.2.2 串的鏈?zhǔn)酱鎯?90
4.3 串的模式匹配 91
4.3.1 模式匹配的簡單算法 91
4.3.2 KMP算法 94
4.3.3 KMP改進算法 98
4.4 用串實現(xiàn)手機通信錄管理系統(tǒng) 99
本章小結(jié) 108
本章習(xí)題 109
第5章 多維數(shù)組 111
5.1 數(shù)組 111
5.1.1 數(shù)組的概念 111
5.1.2 數(shù)組的存儲結(jié)構(gòu)和實現(xiàn) 112
5.1.3 用二維數(shù)組解決用戶喜好相似度商品推薦的問題 114
5.2 矩陣的壓縮存儲 121
5.2.1 特殊矩陣的邏輯結(jié)構(gòu) 122
5.2.2 用特殊矩陣解決查詢城市
之間距離的問題 123
5.3 稀疏矩陣 125
5.3.1 稀疏矩陣的邏輯結(jié)構(gòu) 125
5.3.2 稀疏矩陣的壓縮存儲 125
本章小結(jié) 127
本章習(xí)題 127
第6章 樹 130
6.1 概述 130
6.2 二叉樹 133
6.2.1 二叉樹的定義和基本操作 133
6.2.2 二叉樹的性質(zhì) 134
6.2.3 二叉樹的存儲 136
6.3 二叉樹的遍歷和線索化 139
6.3.1 二叉樹的遍歷 139
6.3.2 二叉樹的線索化 144
6.3.3 用二叉樹解決快速搜索人口普查中的數(shù)據(jù)問題 149
6.4 樹和森林 152
6.4.1 樹的存儲 153
6.4.2 樹、森林與二叉樹的轉(zhuǎn)換 156
6.4.3 樹和森林的遍歷 157
6.5 哈夫曼樹及其應(yīng)用 158
6.5.1 基本概念 158
6.5.2 哈夫曼樹的構(gòu)造 159
6.5.3 哈夫曼樹的應(yīng)用 163
6.5.4 用哈夫曼樹解決文件傳輸編碼問題 164
本章小結(jié) 173
本章習(xí)題 173
第7章 圖 177
7.1 圖的定義和術(shù)語 177
7.1.1 各種圖定義 178
7.1.2 圖的頂點與邊間關(guān)系 180
7.1.3 連通圖的相關(guān)術(shù)語 182
7.2 圖的存儲結(jié)構(gòu) 184
7.2.1 鄰接矩陣存儲結(jié)構(gòu) 184
7.2.2 鄰接表存儲結(jié)構(gòu) 186
7.3 圖的遍歷 189
7.3.1 深度優(yōu)先搜索遍歷 190
7.3.2 廣度優(yōu)先搜索遍歷 192
7.4 圖的生成樹 194
7.4.1 生成樹的基本概念 194
7.4.2 最小生成樹的構(gòu)造 196
7.5 最短路徑 202
7.5.1 單源最短路徑 202
7.5.2 所有頂點對之間的最短路徑 207
7.6 村村通公路規(guī)劃系統(tǒng)的實現(xiàn) 211
本章小結(jié) 227
本章習(xí)題 227
第8章 排序 231
8.1 概述 231
8.2 插入排序 232
8.2.1 直接插入排序 232
8.2.2 希爾排序 235
8.3 交換排序 237
8.3.1 冒泡排序 237
8.3.2 快速排序 239
8.4 選擇排序 241
8.4.1 直接選擇排序 242
8.4.2 堆排序 243
8.5 編程實現(xiàn)奧運會奧運獎牌排名系統(tǒng) 247
本章小結(jié) 258
本章習(xí)題 258
第9章 查找 261
9.1 概述 261
9.2 線性表查找 262
9.2.1 順序查找 262
9.2.2 二分查找 264
9.2.3 分塊查找 266
9.3 哈希表查找 268
9.3.1 哈希表的概念 269
9.3.2 哈希表的構(gòu)造 270
9.3.3 解決沖突的方法 272
9.3.4 哈希表查找實現(xiàn) 276
9.4 編程實現(xiàn)鐵路售票查詢系統(tǒng) 277
本章小結(jié) 281
本章習(xí)題 282
參考文獻 285