數(shù)據(jù)結(jié)構(gòu)與算法(Java版)(第5版)
定 價:59.8 元
- 作者:葉核亞 著
- 出版時間:2020/8/1
- ISBN:9787121393051
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP312.8
- 頁碼:358
- 紙張:
- 版次:01
- 開本:16K
本書是“十二五”普通高等教育本科國家級規(guī)劃教材,也是“十三五”江蘇省高等學(xué)校重點教材。本書全面系統(tǒng)地介紹數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)理論和算法設(shè)計方法,包括線性表、樹、圖等數(shù)據(jù)結(jié)構(gòu)以及查找和排序算法,采用Java語言以面向?qū)ο蠓椒ㄔO(shè)計并實現(xiàn)了這些數(shù)據(jù)結(jié)構(gòu)及算法。本書精選基礎(chǔ)理論內(nèi)容,重點突出數(shù)據(jù)結(jié)構(gòu)設(shè)計和算法設(shè)計,內(nèi)容涉及的廣度和深度符合計算機(jī)專業(yè)本科的培養(yǎng)目標(biāo)。通過降低理論難度和抽象性、增強(qiáng)實際應(yīng)用、強(qiáng)化實踐環(huán)節(jié)等措施,展現(xiàn)“理論基礎(chǔ)厚實,采用面向?qū)ο蟪绦蛟O(shè)計思想,加強(qiáng)工程應(yīng)用能力培養(yǎng)”的鮮明特色,從而達(dá)到增強(qiáng)學(xué)生的理解能力和培養(yǎng)應(yīng)用能力的教學(xué)目標(biāo)。本書配套教學(xué)資源齊全。本書可作為普通高等學(xué)校計算機(jī)及相近專業(yè)本科的數(shù)據(jù)結(jié)構(gòu)、算法課程教材,也可作為從事計算機(jī)軟件開發(fā)和工程應(yīng)用人員的參考書。
葉核亞,女,南京工程學(xué)院計算機(jī)工程學(xué)院教師,畢業(yè)于南京大學(xué)。多年來一直教授\"Java程序設(shè)計”、\"數(shù)據(jù)結(jié)構(gòu)”等課程,編寫的教材榮獲普通高等教育\"十一五”國家級規(guī)劃教材、”十二五\"普通高等教育本科國家級規(guī)劃教材等。
目 錄
第1章 緒論\t1
1.1 數(shù)據(jù)結(jié)構(gòu)的基本概念\t1
1.1.1 為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)\t1
1.1.2 什么是數(shù)據(jù)結(jié)構(gòu)\t2
1.1.3 數(shù)據(jù)類型與抽象數(shù)據(jù)類型\t5
1.2 算法\t9
1.2.1 什么是算法\t9
1.2.2 算法分析\t11
1.2.3 算法設(shè)計與實現(xiàn)\t13
習(xí)題1\t16
實驗1 算法設(shè)計與分析\t17
第2章 線性表\t18
2.1 線性表的定義及抽象數(shù)據(jù)類型\t18
2.2 線性表的順序存儲結(jié)構(gòu)和實現(xiàn)\t20
2.2.1 線性表的順序存儲結(jié)構(gòu)\t20
2.2.2 順序表類的設(shè)計及應(yīng)用\t21
2.3 線性表的存儲和實現(xiàn)\t32
2.3.1 線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)\t32
2.3.2 單鏈表\t33
2.3.3 循環(huán)雙鏈表\t43
2.4 排序線性表的存儲和實現(xiàn)\t46
2.4.1 比較對象大小的方法\t46
2.4.2 排序順序表\t48
2.4.3 排序單鏈表\t54
2.5 線性表的應(yīng)用:多項式的存儲和運算\t55
2.5.1 一元多項式的存儲和運算\t55
2.5.2 二元多項式的存儲和運算\t60
習(xí)題2\t62
實驗2 線性表的基本操作\t63
第3章 字符串\t65
3.1 字符串抽象數(shù)據(jù)類型\t65
3.2 字符串的順序存儲結(jié)構(gòu)和實現(xiàn)\t67
3.2.1 常量字符串\t67
3.2.2 變量字符串\t75
3.3 字符串的模式匹配\t79
3.3.1 Brute-Force模式匹配算法\t80
3.3.2 模式匹配應(yīng)用\t82
3.3.3 KMP模式匹配算法\t84
習(xí)題3\t90
實驗3 字符串的基本操作和模式匹配算法\t91
第4章 棧、隊列和遞歸\t94
4.1 棧\t94
4.1.1 棧的定義及抽象數(shù)據(jù)類型\t94
4.1.2 棧的存儲結(jié)構(gòu)和實現(xiàn)\t95
4.1.3 棧的應(yīng)用\t97
4.2 隊列\(zhòng)t105
4.2.1 隊列的定義及抽象數(shù)據(jù)類型\t105
4.2.2 隊列的存儲結(jié)構(gòu)和實現(xiàn)\t106
4.2.3 隊列的應(yīng)用\t111
4.2.4 優(yōu)先隊列\(zhòng)t112
4.3 遞歸\t114
習(xí)題4\t120
實驗4 棧、隊列和遞歸算法\t120
第5章 數(shù)組和廣義表\t124
5.1 數(shù)組\t124
5.2 特殊矩陣的壓縮存儲\t129
5.2.1 三角矩陣、對稱矩陣和對角矩陣的壓縮存儲\t129
5.2.2 稀疏矩陣的壓縮存儲\t131
5.3 廣義表\t141
5.3.1 廣義表定義及抽象數(shù)據(jù)類型\t141
5.3.2 廣義表的存儲結(jié)構(gòu)和實現(xiàn)\t143
習(xí)題5\t148
實驗5 矩陣和廣義表的存儲和運算\t149
第6章 二叉樹\t151
6.1 二叉樹概述\t151
6.1.1 二叉樹的定義、性質(zhì)及抽象數(shù)據(jù)類型\t151
6.1.2 二叉樹的存儲結(jié)構(gòu)\t154
6.1.3 二叉樹的二叉鏈表實現(xiàn)\t155
6.2 樹\t169
6.2.1 樹的定義及抽象數(shù)據(jù)類型\t169
6.2.2 樹的存儲結(jié)構(gòu)\t171
6.2.3 樹/森林的父母孩子兄弟鏈表實現(xiàn)\t172
6.3 二叉樹應(yīng)用\t176
6.3.1 Huffman樹\t176
6.3.2 表達(dá)式二叉樹\t185
習(xí)題6\t189
實驗6 二叉樹和樹的基本操作\t191
第7章 圖\t194
7.1 圖的概念和抽象數(shù)據(jù)類型\t194
7.2 圖的存儲結(jié)構(gòu)和實現(xiàn)\t201
7.2.1 抽象圖類,存儲頂點集合\t201
7.2.2 圖的鄰接矩陣存儲結(jié)構(gòu)和實現(xiàn)\t202
7.2.3 圖的鄰接表存儲結(jié)構(gòu)和實現(xiàn)\t207
7.2.4 圖的鄰接多重表存儲結(jié)構(gòu)\t212
7.3 圖的遍歷\t212
7.3.1 圖的深度優(yōu)先遍歷\t213
7.3.2 圖的廣度優(yōu)先遍歷\t216
7.4 最小生成樹\t218
7.5 最短路徑\t222
7.5.1 單源最短路徑\t223
7.5.2** 每對頂點間的最短路徑\t227
習(xí)題7\t230
實驗7 圖的存儲結(jié)構(gòu)和操作算法\t231
第8章 查找\t234
8.1 查找基礎(chǔ)\t234
8.1.1 查找概述\t234
8.1.2 二分法查找\t237
8.2 索引\t239
8.2.1 分塊與索引\t239
8.2.2 靜態(tài)索引\t241
8.2.3 動態(tài)索引\t245
8.3 散列表\t246
8.4 二叉排序樹和平衡二叉樹\t251
8.4.1 二叉排序樹\t251
8.4.2 二叉樹采用三叉鏈表存儲結(jié)構(gòu)\t258
8.4.3** 平衡二叉樹\t259
8.5 映射\t262
8.5.1 映射的定義及接口\t262
8.5.2 散列映射\t264
8.5.3 樹映射\t266
習(xí)題8\t269
實驗8 集合和映射的數(shù)據(jù)結(jié)構(gòu)設(shè)計和查找算法設(shè)計\t270
第9章 排序\t274
9.1 插入排序\t274
9.1.1 直接插入排序\t274
9.1.2 希爾排序\t276
9.2 交換排序\t278
9.2.1 冒泡排序\t278
9.2.2 快速排序\t280
9.3 選擇排序\t282
9.3.1 直接選擇排序\t282
9.3.2 堆排序\t283
9.4 歸并排序\t286
9.5 線性表的排序算法\t288
9.5.1 順序表的排序算法\t289
9.5.2 單鏈表的排序算法\t289
9.5.3 循環(huán)雙鏈表的排序算法\t292
習(xí)題9\t293
實驗9 排序算法設(shè)計\t294
第10章 綜合應(yīng)用設(shè)計\t296
10.1 Java集合框架\t296
10.1.1 Arrays數(shù)組類\t296
10.1.2 集合\t297
10.1.3 映射\t304
10.2 實現(xiàn)迭代器\t305
10.2.1 設(shè)計基于迭代器的通用操作\t305
10.2.2 提供迭代器的類\t307
10.3 算法設(shè)計策略\t309
10.3.1 分治法\t309
10.3.2 動態(tài)規(guī)劃法\t311
10.3.3 貪心法\t313
10.3.4 回溯法\t323
10.4 課程設(shè)計的目的、要求和選題\t337
附錄A ASCII字符與Unicode值\t340
附錄B Java關(guān)鍵字\t341
附錄C Java基本數(shù)據(jù)類型\t342
附錄D Java運算符及其優(yōu)先級\t343
附錄E Java類庫(部分)\t344
E.1 java.lang語言包\t344
E.2 java.util實用包\t347
附錄F MyEclipse常用菜單命令\t349
參考文獻(xiàn)\t350