注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)C/C++及其相關(guān)數(shù)據(jù)結(jié)構(gòu)

數(shù)據(jù)結(jié)構(gòu)

數(shù)據(jù)結(jié)構(gòu)

定 價(jià):¥29.00

作 者: 金遠(yuǎn)平
出版社: 清華大學(xué)出版社
叢編項(xiàng): 重點(diǎn)大學(xué)計(jì)算機(jī)專業(yè)系列教材
標(biāo) 簽: 數(shù)據(jù)結(jié)構(gòu)

ISBN: 9787302107989 出版時(shí)間: 2005-07-01 包裝: 平裝
開本: 16開 頁數(shù): 335 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書系統(tǒng)、全面地論述數(shù)據(jù)結(jié)構(gòu)的重要內(nèi)容,包括基本概念和方法、線性表、鏈表、樹、堆結(jié)構(gòu)、圖、排序和搜索結(jié)構(gòu)。在充分繼承國(guó)內(nèi)外經(jīng)典教材的合理體系結(jié)構(gòu)和優(yōu)秀內(nèi)容的基礎(chǔ)上,結(jié)合國(guó)內(nèi)實(shí)際教學(xué)情況編寫,內(nèi)容系統(tǒng)、精煉,且經(jīng)過優(yōu)化整合,在深度和廣度上有明顯增強(qiáng);突出重點(diǎn)、難點(diǎn),強(qiáng)調(diào)分析問題和解決問題的方法,以及產(chǎn)生這些方法的背景。書中內(nèi)容都經(jīng)過編者深入研究,且在教學(xué)實(shí)踐中反復(fù)驗(yàn)證,因而較易理解。本書注重啟發(fā)創(chuàng)新思維,培養(yǎng)能力;概念準(zhǔn)確,邏輯性強(qiáng);自然引用面向?qū)ο笤O(shè)計(jì)思想,用C++語言描述算法。本書適于作為計(jì)算機(jī)科學(xué)與技術(shù)、軟件工程以及相關(guān)專業(yè)的教材,也可供從事相關(guān)工作的科技與工程人員參考。本書前言設(shè)計(jì)解決實(shí)際問題的計(jì)算機(jī)軟件系統(tǒng),首先需要建立被處理對(duì)象的數(shù)據(jù)模型。數(shù)據(jù)和世上萬物一樣,都是具有結(jié)構(gòu)的。因此,人們很自然地用數(shù)據(jù)結(jié)構(gòu)表示應(yīng)用領(lǐng)域的被處理對(duì)象。為了模擬實(shí)際問題的求解過程和現(xiàn)實(shí)對(duì)象的行為,還必須提供對(duì)數(shù)據(jù)結(jié)構(gòu)的相應(yīng)操作。數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)是由下一層數(shù)據(jù)結(jié)構(gòu)表示上一層數(shù)據(jù)結(jié)構(gòu),直至由程序設(shè)計(jì)語言提供的基本數(shù)據(jù)類型表示的過程。評(píng)價(jià)數(shù)據(jù)結(jié)構(gòu)表示優(yōu)劣的標(biāo)準(zhǔn)主要是其能否方便且有效地實(shí)現(xiàn)需要的操作,而實(shí)現(xiàn)操作的算法設(shè)計(jì)及其效率高低也依賴于數(shù)據(jù)結(jié)構(gòu)表示。因此,數(shù)據(jù)結(jié)構(gòu)的定義、表示以及操作的實(shí)現(xiàn)相互關(guān)聯(lián),都是數(shù)據(jù)結(jié)構(gòu)研究的重要內(nèi)容。計(jì)算機(jī)軟件系統(tǒng)可看成是通過不同層次的數(shù)據(jù)結(jié)構(gòu)及其操作實(shí)現(xiàn)的。通過多層表示,完成計(jì)算機(jī)對(duì)應(yīng)用領(lǐng)域問題的求解過程。在此,中間層數(shù)據(jù)結(jié)構(gòu)起著核心作用。數(shù)據(jù)結(jié)構(gòu)的研究產(chǎn)生了一批通用性強(qiáng)、具有很高實(shí)用價(jià)值的中間層數(shù)據(jù)結(jié)構(gòu),如數(shù)組、字符串、集合、線性表、棧、隊(duì)列、鏈表、樹、圖、符號(hào)表等。這些結(jié)構(gòu)不僅為我們提供了設(shè)計(jì)軟件系統(tǒng)的有用工具,而且向我們展示了在廣泛的應(yīng)用領(lǐng)域表示與解決問題的精巧思路和技術(shù)。系統(tǒng)地學(xué)習(xí)和掌握數(shù)據(jù)結(jié)構(gòu)知識(shí)和方法,對(duì)于提高設(shè)計(jì)與開發(fā)軟件系統(tǒng)尤其是復(fù)雜軟件系統(tǒng)的能力,無疑是十分重要的。因此,數(shù)據(jù)結(jié)構(gòu)早已成為計(jì)算機(jī)科學(xué)與技術(shù)和軟件工程等專業(yè)的核心課程。數(shù)據(jù)結(jié)構(gòu)課程內(nèi)容豐富,涵蓋了計(jì)算機(jī)科學(xué)與技術(shù)的許多重要的成果,分析問題和解決問題的思路和方法新穎,創(chuàng)新點(diǎn)多,技巧性強(qiáng),對(duì)學(xué)生專業(yè)素質(zhì)的培養(yǎng)作用明顯,但同時(shí)也是一門較難學(xué)習(xí)的課程。我校計(jì)算機(jī)科學(xué)與工程系開設(shè)的"數(shù)據(jù)結(jié)構(gòu)"課程一直采用美國(guó)南加州大學(xué)教授E.Horowitz等編著的《數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)》作為教材。該書注重培養(yǎng)學(xué)生分析問題、解決問題的能力,在數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計(jì)以及時(shí)空復(fù)雜性分析的深度和廣度方面特色明顯。但在教學(xué)中也感到該書內(nèi)容的表達(dá)形式學(xué)生較難理解,方法和技術(shù)的論述還不夠簡(jiǎn)明扼要,有的內(nèi)容不夠精煉,部分章節(jié)存在一些小錯(cuò)誤,教學(xué)效果較多依賴于教師的講解。為此,編者在充分繼承該書體系結(jié)構(gòu)和內(nèi)容優(yōu)點(diǎn)的基礎(chǔ)上,吸收其他教材長(zhǎng)處,進(jìn)行優(yōu)化整合,并結(jié)合自身多年的教學(xué)改革與實(shí)踐經(jīng)驗(yàn),編寫了這本教材,力圖使其系統(tǒng)全面,內(nèi)容深刻,表達(dá)簡(jiǎn)潔,易于理解,以適應(yīng)計(jì)算機(jī)科學(xué)與技術(shù)及相關(guān)專業(yè)的教學(xué)需要。本書共分為8章。第1章論述數(shù)據(jù)結(jié)構(gòu)的基本概念和方法,包括數(shù)據(jù)結(jié)構(gòu)與軟件系統(tǒng),數(shù)據(jù)抽象與封裝,算法,遞歸,性能分析、性能測(cè)量,以及效率與權(quán)衡等。特別引入了代價(jià)分?jǐn)偡治龇椒ǎ瑢⑾嚓P(guān)的操作序列聯(lián)系起來分析,從而得到更接近實(shí)際代價(jià)的結(jié)果。此外,還從軟件重用的角度描述了C++的模板機(jī)制。第2章介紹線性表的概念及其順序表示方法,討論了通過線性表表示的多項(xiàng)式、稀疏矩陣和字符串等結(jié)構(gòu)。在描述著名的字符串模式匹配算法KMP時(shí),采用了簡(jiǎn)明易懂的圖示方法。還通過兩個(gè)字符串的最長(zhǎng)公共子序列問題的求解,展示了利用動(dòng)態(tài)規(guī)劃改進(jìn)算法效率的方法。由于棧和隊(duì)列是受限的線性表,因此也被整合到這一章。此章不僅給出了通用棧和隊(duì)列的實(shí)現(xiàn)方法,還分別通過求解迷宮問題、表達(dá)式計(jì)算以及機(jī)場(chǎng)模擬問題描述了棧和隊(duì)列的應(yīng)用。第3章論述以鏈表形式實(shí)現(xiàn)線性表的方法和技術(shù),討論了遍歷通用模板類容器對(duì)象的游標(biāo)技術(shù)。還介紹了廣義表的功能及其實(shí)現(xiàn)方法,并結(jié)合C++的動(dòng)態(tài)類型,討論了異構(gòu)表的實(shí)現(xiàn)方法。第4章介紹最基本的非線性結(jié)構(gòu):樹,包括樹和森林的概念、二叉樹、二叉樹的遍歷及應(yīng)用、線索二叉樹、勝者樹、敗者樹、森林的二叉樹表示及遍歷、樹在并查集問題中的應(yīng)用和二叉樹計(jì)數(shù)等。特別給出了有一定難度的中序線索二叉樹的后序遍歷算法,還給出了生成所有可能的二叉樹的算法。第5章介紹支持各種優(yōu)先隊(duì)列的堆結(jié)構(gòu),包括最大堆、最大最小堆、雙堆、左偏樹、二項(xiàng)式堆和斐波納契堆。在分析二項(xiàng)式堆和斐波納契堆的性能時(shí),采用了代價(jià)分?jǐn)偡椒?。?章介紹更普遍的非線性結(jié)構(gòu):圖,包括圖的定義和表示方法、圖的遍歷、圖的連通性、最小代價(jià)生成樹、最短路徑和傳遞閉包以及活動(dòng)網(wǎng)絡(luò)等。特別討論了應(yīng)用斐波納契堆改進(jìn)最短路徑算法性能的技術(shù)。在數(shù)據(jù)結(jié)構(gòu)中,數(shù)據(jù)元素之間的次序是一種重要的關(guān)系。按照數(shù)據(jù)元素的特定屬性對(duì)其進(jìn)行排序是最頻繁的計(jì)算任務(wù)之一。第7章介紹各種典型的排序方法,包括插入排序、希爾排序、快速排序、歸并排序、堆排序、基數(shù)排序、基于鏈表和映射表排序結(jié)果的順序化以及外排序。第8章介紹符號(hào)表概念以及實(shí)現(xiàn)符號(hào)表的各種結(jié)構(gòu),包括二叉查找樹、AVL樹、2-3樹、Splay樹、B樹、B+樹、Trie、靜態(tài)散列和動(dòng)態(tài)散列等,特別分析了二叉查找樹的平均性能。在分析Splay樹的性能時(shí),采用了代價(jià)分?jǐn)偡椒ā4送?,還論述了上述結(jié)構(gòu)的演變關(guān)系,幫助讀者理解其設(shè)計(jì)思想。本書可供各種層次的讀者選用,既適用于教學(xué),也可供從事相關(guān)工作的科技與工程人員參考??梢园?數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)"(64學(xué)時(shí),必修)和"高級(jí)數(shù)據(jù)結(jié)構(gòu)"(24~32學(xué)時(shí),選修)兩門課組織教學(xué)。本書的2.4、2.9、3.10、4.5、4.8、4.9、5.2~5.6、6.4、7.8、8.4、8.5、8.7和8.9節(jié)可作為"高級(jí)數(shù)據(jù)結(jié)構(gòu)"課程的內(nèi)容,其余作為"數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)"課程的內(nèi)容。本書引用了數(shù)據(jù)結(jié)構(gòu)研究的大量先進(jìn)成果,在此,作者謹(jǐn)向這些成果的原創(chuàng)者表示崇高的敬意和衷心的感謝。同時(shí),對(duì)本書所引用的參考文獻(xiàn)的作者也表示衷心的感謝。在本書的寫作過程中,作者與徐寶文、孫志揮、王茜、徐冬梅、王樹梅、吉根林和張麗暉老師開展了卓有成效的討論,并由此得到很多啟發(fā)。南京大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系陳道蓄教授認(rèn)真審讀了全部書稿,并提出了十分寶貴的修改意見,在此對(duì)他們表示最誠(chéng)摯的謝意。感謝清華大學(xué)出版社的鼓勵(lì)與支持。感謝東南大學(xué)教學(xué)改革基金的資助。還要感謝作者的眾多學(xué)生,他們?cè)跀?shù)據(jù)結(jié)構(gòu)課程學(xué)習(xí)過程中表現(xiàn)出的熱情與執(zhí)著給了作者很大的鼓勵(lì),與他們的討論和交流使作者對(duì)教學(xué)內(nèi)容和教學(xué)方法的改進(jìn)有了更深刻的認(rèn)識(shí)。

作者簡(jiǎn)介

暫缺《數(shù)據(jù)結(jié)構(gòu)》作者簡(jiǎn)介

圖書目錄

第1章 基本概念和方法 1
1.1 數(shù)據(jù)結(jié)構(gòu)與軟件系統(tǒng) 1
1.2 數(shù)據(jù)抽象與封裝 2
1.3 算法定義 5
1.4 遞歸算法 6
1.5 性能分析 9
1.5.1 空間復(fù)雜性 9
1.5.2 時(shí)間復(fù)雜性 10
1.5.3 O表示法 14
1.5.4 代價(jià)分?jǐn)?16
1.5.5 實(shí)際可行的復(fù)雜性 19
1.6 性能測(cè)量 20
1.7 C++中的模板 22
1.8 效率與權(quán)衡 24
習(xí)題1 24
第2章 線性表 26
2.1 線性表與數(shù)組 26
2.2 多項(xiàng)式 27
2.2.1 多項(xiàng)式的表示 28
2.2.2 多項(xiàng)式相加 30
2.3 稀疏矩陣 31
2.3.1 稀疏矩陣的表示 32
2.3.2 稀疏矩陣的轉(zhuǎn)置 32
2.4 字符串 35
2.4.1 字符串模式匹配的簡(jiǎn)單算法 36
2.4.2 字符串模式匹配的KMP算法 36
2.4.3 兩個(gè)字符串的最長(zhǎng)公共子序列 39
2.5 棧 41
2.6 隊(duì)列 44
2.7 迷宮問題 47
2.8 表達(dá)式計(jì)算 51
2.8.1 表達(dá)式 51
2.8.2 后綴表示 51
2.8.3 將中綴轉(zhuǎn)化為后綴 52
2.9 機(jī)場(chǎng)模擬 54
習(xí)題2 61
第3章 鏈表 66
3.1 單鏈表 66
3.1.1 單鏈表的表示 67
3.1.2 基本操作 68
3.2 可重用鏈表類 70
3.2.1 用模板定義鏈表 70
3.2.2 鏈表游標(biāo) 71
3.2.3 鏈表操作 74
3.3 環(huán)鏈表 75
3.4 鏈?zhǔn)綏:完?duì)列 77
3.5 鏈?zhǔn)蕉囗?xiàng)式 79
3.5.1 多項(xiàng)式表示 79
3.5.2 多項(xiàng)式相加 80
3.5.3 刪除多項(xiàng)式 81
3.5.4 環(huán)鏈多項(xiàng)式 82
3.6 等價(jià)類 84
3.7 稀疏矩陣的鏈表實(shí)現(xiàn) 87
3.7.1 稀疏矩陣表示 87
3.7.2 輸入稀疏矩陣 90
3.7.3 刪除稀疏矩陣 91
3.8 雙鏈表 92
3.9 廣義表 94
3.9.1 廣義表的概念及表示 94
3.9.2 遞歸算法 96
3.9.3 引用計(jì)數(shù)、共享與遞歸表 100
3.10 動(dòng)態(tài)類型與異構(gòu)表 102
習(xí)題3 105
第4章 樹 109
4.1 樹和森林的概念及其表示 109
4.2 二叉樹 111
4.2.1 二叉樹定義 111
4.2.2 二叉樹的性質(zhì) 112
4.2.3 二叉樹表示 114
4.3 二叉樹遍歷與樹游標(biāo) 115
4.3.1 中序遍歷 116
4.3.2 前序遍歷 117
4.3.3 后序遍歷 118
4.3.4 中序游標(biāo) 118
4.3.5 后序游標(biāo) 120
4.3.6 按層次遍歷 121
4.4 滿足性問題 122
4.5 線索二叉樹 125
4.5.1 線索 125
4.5.2 中序遍歷線索二叉樹 127
4.5.3 后序遍歷線索二叉樹 128
4.5.4 將結(jié)點(diǎn)插入線索二叉樹 131
4.6 選擇樹 133
4.6.1 勝者樹 133
4.6.2 敗者樹 134
4.7 森林的二叉樹表示及遍歷 136
4.8 集合表示 137
4.8.1 并查集 137
4.8.2 在等價(jià)類問題中的應(yīng)用 143
4.9 二叉樹計(jì)數(shù) 144
習(xí)題4 149
第5章 堆結(jié)構(gòu) 152
5.1 最大堆 152
5.1.1 優(yōu)先隊(duì)列與最大堆 152
5.1.2 插入操作 154
5.1.3 刪除操作 155
5.2 最小最大堆 156
5.2.1 雙端優(yōu)先隊(duì)列與最小最大堆 156
5.2.2 插入操作 157
5.2.3 刪除最小元素操作 160
5.3 雙堆 162
5.3.1 雙堆定義 162
5.3.2 插入操作 164
5.3.3 刪除最小元素 166
5.4 左偏(leftist)樹 168
5.5 二項(xiàng)式堆 172
5.5.1 二項(xiàng)式堆定義 173
5.5.2 插入操作 175
5.5.3 合并操作 175
5.5.4 刪除最小元素 175
5.5.5 分析 177
5.6 斐波納契堆 178
5.6.1 斐波納契堆定義 178
5.6.2 刪除操作 178
5.6.3 key值減少操作 179
5.6.4 瀑布修剪 179
5.6.5 分析 181
習(xí)題5 182
第6章 圖 185
6.1 圖的基本定義 185
6.2 圖的表示 188
6.2.1 鄰接矩陣 188
6.2.2 鄰接表 189
6.2.3 鄰接多表 192
6.3 連通圖的遍歷 194
6.3.1 深度優(yōu)先搜索 194
6.3.2 廣度優(yōu)先搜索 195
6.3.3 生成樹 196
6.4 圖的連通性 197
6.4.1 連通分量 197
6.4.2 雙連分量 198
6.5 最小代價(jià)生成樹 201
6.5.1 克魯斯卡爾算法 201
6.5.2 普瑞姆算法 204
6.6 最短路徑和傳遞閉包 205
6.6.1 邊長(zhǎng)非負(fù)時(shí)的單源點(diǎn)到所有終點(diǎn)的最短路徑 205
6.6.2 所有頂點(diǎn)對(duì)之間的最短路徑 209
6.6.3 傳遞閉包 211
6.7 活動(dòng)網(wǎng)絡(luò) 212
6.7.1 AOV網(wǎng)絡(luò) 212
6.7.2 AOE網(wǎng)絡(luò) 216
習(xí)題6 222
第7章 排序 225
7.1 引言 225
7.2 插入排序 226
7.3 希爾(Shell)排序 228
7.4 快速排序 230
7.5 歸并排序 233
7.5.1 迭代歸并排序 233
7.5.2 遞歸歸并排序 236
7.6 堆排序 238
7.7 基數(shù)排序 241
7.8 基于鏈表和映射表排序結(jié)果的順序化 244
7.9 外排序 249
7.9.1 概述 249
7.9.2 k-路歸并 251
7.9.3 生成初始?xì)w并段 252
7.9.4 歸并段的最佳歸并和哈夫曼樹 256
習(xí)題7 259
第8章 查找結(jié)構(gòu) 262
8.1 符號(hào)表 262
8.2 二叉查找樹 263
8.2.1 二叉查找樹定義 263
8.2.2 二叉查找樹的查找、插入和刪除操作 264
8.2.3 二叉查找樹的結(jié)合與分裂 266
8.2.4 二叉查找樹的性能分析 269
8.2.5 最佳二叉查找樹 272
8.3 AVL樹 278
8.4 2-3樹 285
8.4.1 定義與性質(zhì) 285
8.4.2 2-3樹的查找 287
8.4.3 2-3樹的插入操作 287
8.4.4 2-3樹的刪除操作 289
8.5 Splay樹 292
8.6 B樹 297
8.6.1 m叉查找樹 297
8.6.2 m叉查找樹的查找 299
8.6.3 B樹的定義和性質(zhì) 300
8.6.4 B樹的插入操作 302
8.6.5 B樹的刪除操作 304
8.6.6 B+樹 307
8.7 Trie 310
8.7.1 Trie的定義 310
8.7.2 Trie的查找 311
8.7.3 取樣策略 312
8.7.4 在Trie中插入和刪除元素 312
8.8 靜態(tài)散列 313
8.8.1 散列表 313
8.8.2 散列函數(shù) 315
8.8.3 溢出處理 316
8.9 動(dòng)態(tài)散列 320
8.9.1 帶目錄動(dòng)態(tài)散列 321
8.9.2 無目錄動(dòng)態(tài)散列 327
習(xí)題8 328
索引 332
參考文獻(xiàn) 336

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.dappsexplained.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)