熱門關(guān)鍵字:  聽力密碼  聽力密碼  新概念美語  單詞密碼  巧用聽寫練聽力

數(shù)據(jù)結(jié)構(gòu)(C++描述)

中國水利水電出版社
    【作 者】李根強(qiáng) 【I S B N 】978-7-5084-0689-3 【責(zé)任編輯】 【適用讀者群】高職高專 【出版時(shí)間】2001-07-01 【開 本】16開 【裝幀信息】平裝(光膜) 【版 次】第1版第1次印刷 【頁 數(shù)】 【千字?jǐn)?shù)】352 【印 張】16.25 【定 價(jià)】22 【叢 書】21世紀(jì)高職高專新概念教材 【備注信息】
圖書詳情

    本書從軟件開發(fā)的實(shí)際需要出發(fā),按照面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,詳細(xì)地介紹了線性表,棧和隊(duì)列,串,多維數(shù)組和廣義表,樹,圖等特殊的數(shù)據(jù)結(jié)構(gòu)及在計(jì)算機(jī)中的表示及算法的實(shí)現(xiàn),每個(gè)算法都用C++語言進(jìn)行描述,并全部上機(jī)通過。最后兩章,介紹了計(jì)算機(jī)中常用的兩種運(yùn)算:查找和排序,詳細(xì)介紹了不同的查找、排序運(yùn)算及各種方法的效率分析。

    本書中所有算法都在VC++6.0環(huán)境下運(yùn)行通過。為了方便教學(xué),本書免費(fèi)為授課教師提供用PowerPoint制作的電子教案,教師在使用時(shí)可以根據(jù)需要進(jìn)行必要的修改。

    本書既可以作為高職高專教材,也可以作為從事計(jì)算機(jī)軟件開發(fā)人員和自學(xué)人員的參考書。

    數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)專業(yè)及相關(guān)專業(yè)的一門重要專業(yè)基礎(chǔ)課,也是一門必修的核心課程。在計(jì)算機(jī)科學(xué)的各領(lǐng)域中,都要使用到各種不同的數(shù)據(jù)結(jié)構(gòu),如編譯系統(tǒng)中要使用棧、散列表、語法樹等;操作系統(tǒng)中要使用隊(duì)列、存儲管理表、目錄樹等;數(shù)據(jù)庫系統(tǒng)中要使用線性表、鏈表、索引樹等;人工智能中要使用廣義表、檢索樹、有向圖等;同樣在面向?qū)ο蟮某绦蛟O(shè)計(jì)、計(jì)算機(jī)圖形學(xué)、軟件工程、多媒體技術(shù)、計(jì)算機(jī)輔助設(shè)計(jì)等領(lǐng)域,都會(huì)用到各種不同的數(shù)據(jù)結(jié)構(gòu)。因此,學(xué)好數(shù)據(jù)結(jié)構(gòu),對從事計(jì)算機(jī)技術(shù)及相關(guān)領(lǐng)域的工作人員來說,是非常重要的,它可以使你掌握各種常用的數(shù)據(jù)結(jié)構(gòu)及算法實(shí)現(xiàn),以及每一種算法的時(shí)間復(fù)雜度分析和空間復(fù)雜度分析,知道在哪種情況下,使用哪種數(shù)據(jù)結(jié)構(gòu)最方便,為以后開發(fā)大型程序而使用各種不同的數(shù)據(jù)結(jié)構(gòu)打下基礎(chǔ)。

    數(shù)據(jù)結(jié)構(gòu)的主要任務(wù)是討論現(xiàn)實(shí)世界中的各種數(shù)據(jù)(數(shù)字、字符、字符串、聲音、圖形、圖像等)的邏輯結(jié)構(gòu)、在計(jì)算機(jī)中的各種存儲結(jié)構(gòu)(存儲表示)以及對各種非數(shù)值運(yùn)算的算法實(shí)現(xiàn)和分析各種算法的好壞及其在哪些地方比較適用。通過數(shù)據(jù)結(jié)構(gòu)課程的學(xué)習(xí),使學(xué)生具備用所學(xué)的數(shù)據(jù)結(jié)構(gòu)來解決實(shí)際問題及評價(jià)算法優(yōu)劣的能力,為以后學(xué)習(xí)后續(xù)專業(yè)課程及走上工作崗位從事計(jì)算機(jī)大型軟件開發(fā)鋪路。

    本書內(nèi)容共分9章,第1章介紹了數(shù)據(jù)結(jié)構(gòu)與算法等一些基本術(shù)語,并對算法描述及算法分析作了簡單說明,介紹了衡量算法優(yōu)劣的主要因素:時(shí)間復(fù)雜度和空間復(fù)雜度的求法;第2章到第4章,介紹了線性結(jié)構(gòu)的邏輯特征,一些常用算法的實(shí)現(xiàn)及基本應(yīng)用;第5章到第7章,介紹了非線性結(jié)構(gòu)的邏輯特征,存儲表示及一些常用算法實(shí)現(xiàn)及基本應(yīng)用;第8章到第9章,介紹了在計(jì)算機(jī)中使用非常廣泛的兩種運(yùn)算:查找和排序,對一些常用的查找、排序方法進(jìn)行了詳細(xì)說明,并給出了實(shí)現(xiàn)的算法及時(shí)間復(fù)雜度和空間復(fù)雜度分析。各章內(nèi)容相對獨(dú)立,可便于不同院校不同專業(yè)按需要組織教學(xué)。全書側(cè)重于數(shù)據(jù)結(jié)構(gòu)的應(yīng)用,力求講授內(nèi)容與具體的計(jì)算機(jī)應(yīng)用實(shí)例相結(jié)合,以便于學(xué)生加深對各章內(nèi)容的理解和掌握。

    本書的最大特點(diǎn)是采用面向?qū)ο蟮某绦蛟O(shè)計(jì)語言(C++語言)作為算法的描述語言,所有算法都已經(jīng)上機(jī)調(diào)試通過。但是,由于篇幅所限,大部分算法都是以單獨(dú)的函數(shù)形式給出,若讀者要運(yùn)行這些算法,還必須給出一些變量的說明及主函數(shù)來調(diào)用所給的函數(shù)。因此,本書中的算法描述比原來數(shù)據(jù)結(jié)構(gòu)教材中用類PASCAL語言或類C語言描述算法更直觀,學(xué)生更容易理解和接受。作者在十幾年的數(shù)據(jù)結(jié)構(gòu)課程教學(xué)中,對數(shù)據(jù)結(jié)構(gòu)中的各種算法進(jìn)行了認(rèn)真的研究和分析,在這方面積累了豐富的經(jīng)驗(yàn),因此,本書中所選的例題和習(xí)題都具有一定的針對性,都是針對特定的數(shù)據(jù)結(jié)構(gòu)來進(jìn)行描述的,方便學(xué)生理解和接受,并能為復(fù)雜的數(shù)據(jù)結(jié)構(gòu)算法描述架橋鋪路。

    本書中所有算法都在VC++6.0環(huán)境下運(yùn)行通過(由于篇幅所限,本書中僅給出了實(shí)現(xiàn)某功能算法的函數(shù))。為了方便教學(xué),本書免費(fèi)為授課教師提供用PowerPoint制作的電子教案,教師在使用時(shí)可以根據(jù)需要進(jìn)行必要的修改。

    本書為高職高專的數(shù)據(jù)結(jié)構(gòu)教材,建議講授課時(shí)為60學(xué)時(shí),上機(jī)實(shí)踐課時(shí)為20學(xué)時(shí)。各院校可根據(jù)自已的特點(diǎn),適當(dāng)增刪,目錄中前打*號的可以作為選講內(nèi)容。

    本書也可供從事計(jì)算機(jī)應(yīng)用工作的工程與技術(shù)人員參考,還可以作為高等院校學(xué)生的自學(xué)參考書。

    本書由李根強(qiáng)主編,并負(fù)責(zé)全書的統(tǒng)稿、修改、定稿工作。謝月娥、謝永紅、王希辰任副主編,參加編寫的還有文斌、劉敏等。

    由于編者水平有限,書中不妥或錯(cuò)誤之處在所難免,懇請專家和廣大讀者批評指正。

    編 者

    2001年4月


    前言
    第1章 緒論 1
    1.1 什么是數(shù)據(jù)結(jié)構(gòu) 1
    1.1.1 數(shù)據(jù)結(jié)構(gòu)示例 1
    1.1.2 基本術(shù)語 2
    1.1.3 數(shù)據(jù)結(jié)構(gòu) 3
    1.2 算法的描述 5
    1.2.1 基本概念 5
    1.2.2 算法描述 5
    1.3 算法分析 7
    1.3.1 時(shí)間復(fù)雜度 7
    1.3.2 空間復(fù)雜度 8
    1.4 小結(jié) 9
    1.5 習(xí)題 9
    第2章 線性表 14
    2.1 線性表的定義及其運(yùn)算 14
    2.1.1 線性表的定義 14
    2.1.2 線性表的運(yùn)算 15
    2.1.3 線性表的抽象數(shù)據(jù)類型描述 15
    2.2 線性表的順序存儲結(jié)構(gòu) 16
    2.2.1 順序表結(jié)構(gòu) 16
    2.2.2 順序表運(yùn)算 17
    *2.2.3 順序表存儲空間的動(dòng)態(tài)分配 20
    2.3 線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu) 21
    2.3.1 單鏈表結(jié)構(gòu) 21
    2.3.2 單鏈表運(yùn)算 22
    2.3.3 循環(huán)鏈表結(jié)構(gòu) 29
    2.3.4 雙向鏈表結(jié)構(gòu) 31
    2.4 順序表與鏈表比較 34
    2.5 算法應(yīng)用舉例 34
    2.6 小結(jié) 38
    2.7 習(xí)題 38
    第3章 棧和隊(duì)列 40
    3.1 棧 40
    3.1.1 棧的定義 40
    3.1.2 棧的運(yùn)算 40
    3.1.3 棧的抽象數(shù)據(jù)類型描述 41
    3.1.4 順序棧 42
    3.1.5 鏈棧 46
    3.1.6 棧的應(yīng)用 47
    3.2 隊(duì)列 53
    3.2.1 隊(duì)列的定義 53
    3.2.2 隊(duì)列的基本運(yùn)算 53
    3.2.3 隊(duì)列的抽象數(shù)據(jù)類型描述 54
    3.2.4 循環(huán)隊(duì)列 54
    3.2.5 鏈隊(duì)列 57
    3.2.6 隊(duì)列的應(yīng)用 60
    3.3 小結(jié) 60
    3.4 習(xí)題 61
    第4章 串 64
    4.1 串的定義及運(yùn)算 64
    4.1.1 基本概念 64
    4.1.2 串的運(yùn)算 64
    4.1.3 串的抽象數(shù)據(jù)類型描述 65
    4.2 串的存儲結(jié)構(gòu) 66
    4.2.1 順序存儲 66
    4.2.2 鏈?zhǔn)酱鎯?67
    4.2.3 索引存儲 68
    4.3 串的運(yùn)算的實(shí)現(xiàn) 69
    4.3.1 串插入 69
    4.3.2 串刪除 70
    4.3.3 子串定位 72
    4.4 串操作應(yīng)用舉例 74
    *4.4.1 文本編輯 74
    *4.4.2 建立詞索引表 76
    4.5 小結(jié) 76
    4.6 習(xí)題 76
    第5章 多維數(shù)組和廣義表 78
    5.1 多維數(shù)組 78
    5.1.1 多維數(shù)組的概念 78
    5.1.2 多維數(shù)組在計(jì)算機(jī)內(nèi)的存放 79
    5.2 多維數(shù)組的存儲結(jié)構(gòu) 79
    5.2.1 行優(yōu)先順序 79
    5.2.2 列優(yōu)先順序 80
    5.3 特殊矩陣及其壓縮存儲 80
    5.3.1 特殊矩陣 80
    5.3.2 壓縮存儲 82
    5.4 稀疏矩陣 84
    5.4.1 稀疏矩陣的存儲 84
    5.4.2 稀疏矩陣的運(yùn)算 87
    5.5 廣義表 96
    5.5.1 基本概念 96
    5.5.2 存儲結(jié)構(gòu) 98
    5.5.3 基本運(yùn)算 99
    5.6 小結(jié) 102
    5.7 習(xí)題 102
    第6章 樹 105
    6.1 樹的基本概念 105
    6.1.1 樹的定義 105
    6.1.2 基本術(shù)語 107
    6.1.3 樹的表示 108
    6.1.4 樹的性質(zhì) 109
    6.2 二叉樹 109
    6.2.1 二叉樹的定義 109
    6.2.2 二叉樹的性質(zhì) 111
    6.2.3 二叉樹的存儲結(jié)構(gòu) 112
    6.2.4 二叉樹的抽象數(shù)據(jù)類型 115
    6.3 遍歷二叉樹 116
    6.3.1 前根遍歷 117
    6.3.2 中根遍歷 118
    6.3.3 后根遍歷 119
    6.3.4 遍歷算法應(yīng)用舉例 121
    6.4 線索二叉樹 126
    6.4.1 線索的概念 126
    6.4.2 線索的描述 127
    6.4.3 線索的算法實(shí)現(xiàn) 128
    6.4.4 線索二叉樹上的運(yùn)算 129
    6.5 樹和森林 132
    6.5.1 樹的存儲結(jié)構(gòu) 132
    6.5.2 樹、森林和二叉樹的轉(zhuǎn)換 134
    6.5.3 樹和森林的遍歷 136
    6.6 哈夫曼樹 137
    6.6.1 基本術(shù)語 137
    6.6.2 哈夫曼樹構(gòu)造 137
    6.6.3 哈夫曼樹的應(yīng)用 141
    6.7 小結(jié) 142
    6.8 習(xí)題 143
    第7章 圖 146
    7.1 圖的基本概念 146
    7.1.1 圖的定義 146
    7.1.2 圖的基本術(shù)語 146
    7.2 圖的存儲結(jié)構(gòu) 149
    7.2.1 鄰接矩陣 150
    7.2.2 鄰接表 153
    7.2.3 鄰接多重表 157
    7.3 圖的遍歷 158
    7.3.1 深度優(yōu)先搜索遍歷 158
    7.3.2 廣度優(yōu)先搜索遍歷 162
    7.4 生成樹和最小生成樹 164
    7.4.1 基本概念 164
    7.4.2 普里姆(prim)算法 165
    7.4.3 克魯斯卡爾(kruskal)算法 169
    7.5 最短路徑 171
    7.5.1 單源點(diǎn)最短路徑 172
    7.5.2 所有頂點(diǎn)對之間的最短路徑 175
    7.6 拓?fù)渑判?177
    7.6.1 實(shí)現(xiàn)規(guī)則 177
    7.6.2 算法描述 179
    7.7 小結(jié) 181
    7.8 習(xí)題 182
    第8章 查找 185
    8.1 查找的基本概念 185
    8.2 線性表的查找 186
    8.2.1 順序查找 186
    8.2.2 二分查找 187
    *8.2.3 索引查找 191
    *8.2.4 分塊查找 195
    8.3 樹表查找 196
    8.3.1 二叉排序樹查找 196
    *8.3.2 平衡二叉樹查找 202
    8.4 散列查找 205
    8.4.1 基本概念 205
    8.4.2 散列函數(shù)的構(gòu)造 206
    8.4.3 解決沖突的方法 208
    8.4.4 散列查找算法實(shí)現(xiàn) 212
    8.4.5 散列查找的性能分析 214
    8.5 小結(jié) 216
    8.6 習(xí)題 217
    第9章 排序 218
    9.1 基本概念 218
    9.1.1 排序介紹 218
    9.1.2 基本概念 219
    9.2 插入排序 220
    9.2.1 直接插入排序 220
    9.2.2 二分插入排序 221
    9.2.3 希爾排序 222
    9.3 交換排序 224
    9.3.1 冒泡排序 224
    9.3.2 快速排序 225
    9.4 選擇排序 228
    9.4.1 直接選擇排序 228
    *9.4.2 樹形選擇排序 229
    9.4.3 堆排序 231
    9.5 歸并排序 235
    9.5.1 二路歸并排序 235
    *9.5.2 多路歸并排序 237
    9.6 分配排序 237
    *9.6.1 多關(guān)鍵字排序 237
    *9.6.2 鏈?zhǔn)交鶖?shù)排序 237
    9.7 各種內(nèi)排序方法的比較和選擇 241
    9.7.1 各種內(nèi)排序方法的比較 241
    9.7.2 各種內(nèi)排序方法的選擇 241
    9.8 小結(jié) 242
    9.9 習(xí)題 243





最新評論共有 0 位網(wǎng)友發(fā)表了評論
發(fā)表評論
評論內(nèi)容:不能超過250字,需審核,請自覺遵守互聯(lián)網(wǎng)相關(guān)政策法規(guī)。
用戶名: 密碼:
匿名?
注冊
堆龙德庆县| 黎城县| 改则县| 彭泽县| 交口县| 昌黎县| 渭源县| 乌什县| 墨脱县| 乌兰察布市| 麻栗坡县| 恭城| 雷州市| 临湘市| 平江县| 康马县| 永新县| 车致| 文登市| 马公市| 婺源县| 西藏| 富裕县| 荔波县| 公主岭市| 武宣县| 冕宁县| 宝应县| 会泽县| 南投县| 洮南市| 奉新县| 长沙市| 渭南市| 广德县| 盐源县| 千阳县| 互助| 贺兰县| 布尔津县| 舒兰市|