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