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

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

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

定 價:¥29.00

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

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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

第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 時間復(fù)雜性 10
1.5.3 O表示法 14
1.5.4 代價分?jǐn)?16
1.5.5 實際可行的復(fù)雜性 19
1.6 性能測量 20
1.7 C++中的模板 22
1.8 效率與權(quán)衡 24
習(xí)題1 24
第2章 線性表 26
2.1 線性表與數(shù)組 26
2.2 多項式 27
2.2.1 多項式的表示 28
2.2.2 多項式相加 30
2.3 稀疏矩陣 31
2.3.1 稀疏矩陣的表示 32
2.3.2 稀疏矩陣的轉(zhuǎn)置 32
2.4 字符串 35
2.4.1 字符串模式匹配的簡單算法 36
2.4.2 字符串模式匹配的KMP算法 36
2.4.3 兩個字符串的最長公共子序列 39
2.5 棧 41
2.6 隊列 44
2.7 迷宮問題 47
2.8 表達(dá)式計算 51
2.8.1 表達(dá)式 51
2.8.2 后綴表示 51
2.8.3 將中綴轉(zhuǎn)化為后綴 52
2.9 機(jī)場模擬 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)綏:完犃?77
3.5 鏈?zhǔn)蕉囗検?79
3.5.1 多項式表示 79
3.5.2 多項式相加 80
3.5.3 刪除多項式 81
3.5.4 環(huán)鏈多項式 82
3.6 等價類 84
3.7 稀疏矩陣的鏈表實現(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 引用計數(shù)、共享與遞歸表 100
3.10 動態(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 在等價類問題中的應(yīng)用 143
4.9 二叉樹計數(shù) 144
習(xí)題4 149
第5章 堆結(jié)構(gòu) 152
5.1 最大堆 152
5.1.1 優(yōu)先隊列與最大堆 152
5.1.2 插入操作 154
5.1.3 刪除操作 155
5.2 最小最大堆 156
5.2.1 雙端優(yōu)先隊列與最小最大堆 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 二項式堆 172
5.5.1 二項式堆定義 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 最小代價生成樹 201
6.5.1 克魯斯卡爾算法 201
6.5.2 普瑞姆算法 204
6.6 最短路徑和傳遞閉包 205
6.6.1 邊長非負(fù)時的單源點(diǎn)到所有終點(diǎn)的最短路徑 205
6.6.2 所有頂點(diǎn)對之間的最短路徑 209
6.6.3 傳遞閉包 211
6.7 活動網(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 符號表 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 動態(tài)散列 320
8.9.1 帶目錄動態(tài)散列 321
8.9.2 無目錄動態(tài)散列 327
習(xí)題8 328
索引 332
參考文獻(xiàn) 336

本目錄推薦

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