數(shù)據(jù)結(jié)構(gòu)
-
【作 者】陸勤 主編
【I S B N 】978-7-5084-6611-8
【責(zé)任編輯】李炎
【適用讀者群】本科
【出版時(shí)間】2009-09-01
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第1版第1次印刷
【頁 數(shù)】
【千字?jǐn)?shù)】455
【印 張】17.5
【定 價(jià)】¥28
【叢 書】新世紀(jì)電子信息與自動(dòng)化系列課程改革教材
【備注信息】
簡(jiǎn)介
本書特色
前言
章節(jié)列表
精彩閱讀
下載資源
相關(guān)圖書
本書系統(tǒng)地闡述了基本數(shù)據(jù)結(jié)構(gòu)的多種存儲(chǔ)結(jié)構(gòu)和典型算法,以及應(yīng)用數(shù)據(jù)結(jié)構(gòu)理論解決實(shí)際問題的基本方法和技巧,努力使讀者牢固掌握數(shù)據(jù)結(jié)構(gòu)的理論,培養(yǎng)靈活運(yùn)用并巧妙解決具體問題的能力,為讀者今后進(jìn)一步地深入學(xué)習(xí)實(shí)踐打下堅(jiān)實(shí)基礎(chǔ)。
全書內(nèi)容嚴(yán)謹(jǐn)、編排合理、文字流暢、示例典型、實(shí)用性強(qiáng),書中的程序均已在Microsoft Visual C++ 6.0系統(tǒng)下編譯運(yùn)行。全書共分9章。第1章介紹數(shù)據(jù)結(jié)構(gòu)的基本概念和算法描述及分析。第2章至第7章分別介紹線性表、棧和隊(duì)列、字符串、數(shù)組與特殊矩陣、樹、圖的多種存儲(chǔ)結(jié)構(gòu)和典型算法應(yīng)用示例。第8章介紹了線性表的查找、查找樹、哈希表查找(雜湊法)方法。第9章介紹了插入排序、交換排序、選擇排序、二路歸并排序、基數(shù)排序等多種排序算法。
本書可用作高等學(xué)校非計(jì)算機(jī)專業(yè)本科學(xué)生數(shù)據(jù)結(jié)構(gòu)課程的教材。
本書系統(tǒng)闡述了基本數(shù)據(jù)結(jié)構(gòu)的多種存儲(chǔ)結(jié)構(gòu)和典型算法,以及應(yīng)用數(shù)據(jù)結(jié)構(gòu)理論解決實(shí)際問題的基本方法和技巧。
本書力圖使讀者牢固掌握數(shù)據(jù)結(jié)構(gòu)的理論,培養(yǎng)靈活運(yùn)用并巧妙解決具體問題的能力,為讀者今后進(jìn)一步地深入學(xué)習(xí)實(shí)踐打下堅(jiān)實(shí)基礎(chǔ)。
全書內(nèi)容嚴(yán)謹(jǐn)、編排合理、文字流暢、示例典型、實(shí)用性強(qiáng),書中的程序均已在Microsoft Visual C++ 6.0系統(tǒng)下編譯運(yùn)行。
數(shù)據(jù)結(jié)構(gòu)是一門討論“描述現(xiàn)實(shí)世界實(shí)體的數(shù)學(xué)模型(非數(shù)值計(jì)算)及其上的操作在計(jì)算機(jī)中如何表示和實(shí)現(xiàn)”的學(xué)科。隨著計(jì)算機(jī)硬件、軟件技術(shù)的飛速發(fā)展和計(jì)算機(jī)系統(tǒng)在各行業(yè)的廣泛應(yīng)用,有關(guān)數(shù)據(jù)結(jié)構(gòu)的理論和技術(shù)也成為了計(jì)算機(jī)應(yīng)用技術(shù)教育的重要部分。
數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)技術(shù)應(yīng)用方面的主要基礎(chǔ)課程之一,它引導(dǎo)學(xué)生學(xué)會(huì)從實(shí)際應(yīng)用問題入手,分析研究計(jì)算機(jī)加工的數(shù)據(jù)結(jié)構(gòu)的特性,以便為應(yīng)用所涉及的數(shù)據(jù)選擇適當(dāng)?shù)倪壿嫿Y(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)及其相應(yīng)的操作算法,并初步掌握算法的時(shí)間和空間分析技術(shù)。另一方面,本課程的學(xué)習(xí)過程也是進(jìn)行復(fù)雜程序設(shè)計(jì)、調(diào)試并排除錯(cuò)誤的訓(xùn)練過程,要求學(xué)生編寫的程序代碼結(jié)構(gòu)清晰、正確易讀,具有良好的可維護(hù)性。
本書按照非計(jì)算機(jī)專業(yè)計(jì)算機(jī)課程基本要求中所規(guī)定的數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)內(nèi)容,并參考教育部制定的計(jì)算機(jī)基礎(chǔ)教學(xué)主要課程教學(xué)大綱編寫。全書共分9章。第1章介紹數(shù)據(jù)結(jié)構(gòu)的基本概念和算法描述及分析。第2章至第7章分別介紹線性表、棧和隊(duì)列、字符串、數(shù)組與特殊矩陣、樹、圖的多種存儲(chǔ)結(jié)構(gòu)和典型算法應(yīng)用示例。第8章介紹了線性表的查找、查找樹、哈希表查找(雜湊法)方法。第9章介紹了插入排序、交換排序、選擇排序、二路歸并排序、基數(shù)排序等多種排序算法。
本書可用作高等學(xué)校非計(jì)算機(jī)專業(yè)本科學(xué)生數(shù)據(jù)結(jié)構(gòu)課程的教材,旨在培養(yǎng)學(xué)生運(yùn)用數(shù)據(jù)結(jié)構(gòu)的基本概念和方法解決實(shí)際問題的能力。一般情況下,課堂講授學(xué)時(shí)數(shù)應(yīng)安排為40~60學(xué)時(shí),集體上機(jī)實(shí)踐時(shí)間應(yīng)安排為30學(xué)時(shí),可根據(jù)具體條件適當(dāng)增減教學(xué)內(nèi)容和學(xué)時(shí)數(shù)。多上機(jī)實(shí)踐是學(xué)好本書內(nèi)容的捷徑,希望讀者通過學(xué)習(xí)本書盡快掌握數(shù)據(jù)結(jié)構(gòu)的基本應(yīng)用技能。
本書由陸勤主編,特別感謝國(guó)防科學(xué)技術(shù)大學(xué)鄒逢興教授對(duì)本書的出版所給予的巨大幫助。此外,作者參閱了國(guó)內(nèi)外一些有關(guān)數(shù)據(jù)結(jié)構(gòu)的教材、書籍,受益匪淺。在此,謹(jǐn)向這些教材、書籍的作者表示感謝。
由于時(shí)間倉促及作者水平有限,書中難免存在錯(cuò)誤或不當(dāng)之處,敬請(qǐng)廣大讀者批評(píng)指正。
編 者
2009年5月
前言
第1章 緒論 1
1.1 數(shù)據(jù)結(jié)構(gòu)討論的范疇 2
1.2 數(shù)據(jù)結(jié)構(gòu)的基本概念 2
1.2.1 基本術(shù)語 2
1.2.2 數(shù)據(jù)結(jié)構(gòu) 4
1.2.3 數(shù)據(jù)類型和抽象數(shù)據(jù)類型 6
1.3 算法及其描述和分析 9
1.3.1 算法的特性及其設(shè)計(jì)原則 9
1.3.2 算法的描述 10
1.3.3 算法分析 11
思考題與習(xí)題 15
第2章 線性表 17
2.1 線性表的定義和基本運(yùn)算 18
2.2 線性表的順序存儲(chǔ)結(jié)構(gòu) 20
2.2.1 順序存儲(chǔ)結(jié)構(gòu) 20
2.2.2 順序表的基本操作及其時(shí)間
效率分析 22
2.3 線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu) 24
2.3.1 單鏈表及其基本操作 24
2.3.2 特殊鏈表 32
2.4 線性表的應(yīng)用示例——多項(xiàng)式的
代數(shù)運(yùn)算 36
思考題與習(xí)題 38
第3章 棧和隊(duì)列 41
3.1 棧 42
3.1.1 棧的定義及其運(yùn)算 42
3.1.2 順序棧 43
3.1.3 多棧共享鄰接空間 46
3.1.4 鏈棧 47
3.1.5 棧的應(yīng)用舉例 49
3.2 隊(duì)列(queue) 58
3.2.1 隊(duì)列的定義及其運(yùn)算 59
3.2.2 隊(duì)列的順序存儲(chǔ)結(jié)構(gòu) 60
3.2.3 隊(duì)列的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu) 62
3.2.4 循環(huán)隊(duì)列 64
3.2.5 隊(duì)列的應(yīng)用舉例 66
思考題與習(xí)題 70
第4章 字符串 73
4.1 串的概念 74
4.1.1 串的定義 74
4.1.2 主串和子串 75
4.2 串的存儲(chǔ)結(jié)構(gòu) 76
4.2.1 串的靜態(tài)存儲(chǔ)結(jié)構(gòu) 76
4.2.2 串的動(dòng)態(tài)存儲(chǔ)結(jié)構(gòu) 77
4.3 求子串運(yùn)算 78
4.4 串的模式匹配 80
4.4.1 串的模式匹配的簡(jiǎn)單算法 80
4.4.2 模式匹配的改進(jìn)算法——KMP算法 82
思考題與習(xí)題 85
第5章 數(shù)組與特殊矩陣 87
5.1 數(shù)組的概念 88
5.2 靜態(tài)數(shù)組與動(dòng)態(tài)數(shù)組 90
5.3 特殊矩陣及其壓縮存儲(chǔ) 93
5.3.1 特殊矩陣 93
5.3.2 特殊矩陣的壓縮存儲(chǔ) 94
5.4 稀疏矩陣 97
5.4.1 三元組順序表 98
5.4.2 行邏輯鏈接的順序表 100
5.4.3 十字鏈表 101
思考題與習(xí)題 102
第6章 樹 105
6.1 基本概念 106
6.1.1 樹的定義和有關(guān)術(shù)語 106
6.1.2 二叉樹 108
6.2 二叉樹的存儲(chǔ) 110
6.2.1 順序存儲(chǔ)結(jié)構(gòu) 110
6.2.2 鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu) 112
6.3 二叉樹的抽象數(shù)據(jù)類型 112
6.4 二叉樹的遍歷 115
6.4.1 二叉樹的遍歷方法 115
6.4.2 二叉樹的遍歷算法 118
6.4.3 樹、森林和二叉樹的轉(zhuǎn)換 122
6.5 二叉樹的構(gòu)造 124
6.5.1 用中序序列和先序序列構(gòu)造二叉樹 124
6.5.2 用擴(kuò)充先序序列構(gòu)造二叉樹 126
6.6 線索二叉樹 127
6.6.1 線索二叉樹的定義及結(jié)構(gòu) 127
6.6.2 線索二叉樹的操作 128
6.7 樹的存儲(chǔ)結(jié)構(gòu) 131
6.8 樹和森林的遍歷 135
6.8.1 樹的遍歷 135
6.8.2 森林的遍歷 135
6.9 哈夫曼樹 136
6.9.1 哈夫曼樹算法 136
6.9.2 哈夫曼樹在編碼問題中的應(yīng)用 139
思考題與習(xí)題 143
第7章 圖 147
7.1 基本概念 148
7.1.1 圖的定義 148
7.1.2 有關(guān)術(shù)語 148
7.2 圖的存儲(chǔ)方法 151
7.2.1 鄰接矩陣及其順序存儲(chǔ) 151
7.2.2 鄰接表 154
7.2.3 十字鏈表 157
7.2.4 鄰接多重表 160
7.3 圖的遍歷 162
7.3.1 深度優(yōu)先搜索 162
7.3.2 廣度優(yōu)先搜索 167
7.4 最小生成樹 169
7.4.1 最小生成樹的基本概念 169
7.4.2 構(gòu)造最小生成樹的普里姆(Prim)
方法 169
7.4.3 構(gòu)造最小生成樹的克魯斯卡爾
(Kruskal)算法 173
7.5 最短路徑 176
7.5.1 單源點(diǎn)最短路徑 176
7.5.2 每一對(duì)頂點(diǎn)之間的最短路徑 179
7.6 有向無環(huán)圖及其應(yīng)用 181
7.6.1 AOV網(wǎng)與拓?fù)渑判?181
7.6.2 AOE網(wǎng)與關(guān)鍵路徑 191
思考題與習(xí)題 198
第8章 查找 203
8.1 基本概念與術(shù)語 204
8.2 線性表的查找 205
8.2.1 順序查找 205
8.2.2 順序表的折半查找 206
8.2.3 分塊查找 209
8.3 查找樹 210
8.3.1 二叉查找樹 210
8.3.2 平衡二叉樹(AVL樹) 218
8.3.3 B-樹和B+樹 226
8.4 哈希表查找(雜湊法) 234
8.4.1 哈希表與哈希方法 234
8.4.2 哈希函數(shù)的構(gòu)造方法 235
8.4.3 處理沖突方法 237
8.4.4 哈希表中查找和插入算法的實(shí)現(xiàn) 241
8.4.5 哈希表的查找算法分析 242
思考題與習(xí)題 243
第9章 排序 247
9.1 基本概念 248
9.2 插入排序 248
9.2.1 直接插入排序 248
9.2.2 二分法插入排序 250
9.2.3 表插入排序 251
9.2.4 希爾排序(Shell's Sort) 253
9.3 交換排序 254
9.3.1 冒泡排序(Bubble Sort) 254
9.3.2 快速排序 256
9.4 選擇排序 258
9.4.1 簡(jiǎn)單選擇排序 258
9.4.2 樹形選擇排序 259
9.4.3 堆排序(Heap Sort) 260
9.5 二路歸并排序 264
9.6 基數(shù)排序 264
9.6.1 多關(guān)鍵字排序 265
9.6.2 鏈?zhǔn)交鶖?shù)排序 265
思考題與習(xí)題 268
參考文獻(xiàn) 270
- 數(shù)據(jù)結(jié)構(gòu)(Python語言描述) [曹岳輝 劉衛(wèi)國(guó) 康松林 編著]
- 數(shù)據(jù)結(jié)構(gòu)——C語言(微課版) [主編 梁海英]
- 數(shù)據(jù)結(jié)構(gòu)(C語言版)習(xí)題解答及實(shí)訓(xùn)指導(dǎo) [李根強(qiáng) 謝月娥]
- 數(shù)據(jù)結(jié)構(gòu)(C語言版) [主編 李根強(qiáng) 劉浩 謝月娥]
- 數(shù)據(jù)結(jié)構(gòu)(Java版) [主編 李云平]
- 數(shù)據(jù)結(jié)構(gòu) [主編 韓利凱 朱浩悅]
- 數(shù)據(jù)結(jié)構(gòu)(C語言版)(第三版) [主編 庫波 曹靜]
- 數(shù)據(jù)結(jié)構(gòu)(Java版) [孫琳 張宇]
- 數(shù)據(jù)結(jié)構(gòu) [許繪香 段明義]
- 數(shù)據(jù)結(jié)構(gòu)(C語言描述) [李素若 陳萬華 游明坤 編著]
- 數(shù)據(jù)結(jié)構(gòu)習(xí)題解答及上機(jī)指導(dǎo) [李素若 琚輝 嚴(yán)永松 編著]
- 數(shù)據(jù)結(jié)構(gòu)(C++描述)習(xí)題解答及實(shí)習(xí)指導(dǎo) [李根強(qiáng) 謝月娥 主編]
- 數(shù)據(jù)結(jié)構(gòu)(C語言版)學(xué)習(xí)指導(dǎo)與習(xí)題解答 [趙堅(jiān) 姜梅 主編]
- 數(shù)據(jù)結(jié)構(gòu)(C++描述) [李根強(qiáng) 主 編]
- 數(shù)據(jù)結(jié)構(gòu)(C++版)--習(xí)題解答及實(shí)習(xí)指導(dǎo) [李根強(qiáng) 主編]
- 數(shù)據(jù)結(jié)構(gòu)算法--Visual C++ 6.0程序集 [侯識(shí)忠 等編著]
- 數(shù)據(jù)結(jié)構(gòu)算法--C++ Builder 6.0程序集 [侯識(shí)忠 等編著]
- 數(shù)據(jù)結(jié)構(gòu)(C語言版)學(xué)習(xí)指導(dǎo)與習(xí)題解答 [趙堅(jiān) 姜梅 主編]
- 數(shù)據(jù)結(jié)構(gòu)(C語言版) [趙堅(jiān) 姜梅 主編]
- 數(shù)據(jù)結(jié)構(gòu)(C語言描述) [斯慶巴拉 主編]
- 數(shù)據(jù)結(jié)構(gòu)(C++版)(第二版) [李根強(qiáng)]
- 數(shù)據(jù)結(jié)構(gòu)(C++版)(第二版)習(xí)題解答及實(shí)訓(xùn)指導(dǎo) [李根強(qiáng)]
- 數(shù)據(jù)結(jié)構(gòu)——用C語言描述 [蔡明志 編著]
- 數(shù)據(jù)結(jié)構(gòu)(C++版) [李根強(qiáng) 主編]
- 數(shù)據(jù)結(jié)構(gòu)--用C語言描述(第二版) [寧正元 易金聰 編著]
- 數(shù)據(jù)結(jié)構(gòu)(C語言描述) [馬秋菊 主編]
- 數(shù)據(jù)結(jié)構(gòu)(C/C++描述) [阮宏一 主編]
- 數(shù)據(jù)結(jié)構(gòu)--C語言描述(第二版) [王路群 主編]
- 數(shù)據(jù)結(jié)構(gòu)、算法與應(yīng)用(Java語言描述) [[美]Sartaj Sahni(薩爾塔杰.薩]
- 數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)程序 [智東杰 主 編]
- 生活經(jīng)管more>>
- 智能控制導(dǎo)論(第三版)
- 自動(dòng)控制——建模•分析•設(shè)
- 信號(hào)處理與系統(tǒng)分析(第二版)
- 智能控制導(dǎo)論(第二版)
- 數(shù)據(jù)結(jié)構(gòu)
- 網(wǎng)頁設(shè)計(jì)
- 電路基礎(chǔ)與集成電子技術(shù)
- 數(shù)字圖像處理與分析基礎(chǔ)
- 信號(hào)處理與系統(tǒng)分析
- C++程序設(shè)計(jì)基礎(chǔ)
- 控制器件
- 自動(dòng)控制原理實(shí)踐教程
- 系統(tǒng)辨識(shí)基礎(chǔ)
- 大學(xué)計(jì)算機(jī)
- 多媒體應(yīng)用技術(shù)基礎(chǔ)
- 計(jì)算機(jī)控制及網(wǎng)絡(luò)技術(shù)