數據結構(C++版)(第3版)

數據結構(C++版)(第3版)

《數據結構(C++版)(第3版)》是2014年2月電子工業出版社出版的圖書,作者是葉核亞。

基本介紹

  • 書名:數據結構(C++版)(第3版)
  • 作者:葉核亞
  • ISBN:9787121219856
  • 頁數:328頁
  • 定價:42元
  • 出版社:電子工業出版社
  • 出版時間:2014年2月
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

本書全面系統地介紹數據結構的基礎理論和算法設計方法,包括線性表、樹、圖等數據結構以及查找和排序算法。內容涉及的廣度和深度符合計算機專業本科的基本要求,體現了本科教學的培養目標。
本書採用C++語言以面向對象方法描述數據結構和算法。本書理論敘述精練,結構安排合理,重點是數據結構設計和算法設計,通過降低理論難度和抽象性、加強實踐環節等措施,力求增強學生的理解能力和套用能力。
本書有配套的教學資料包,包括電子課件、原始碼及習題解答等。

圖書目錄

目 錄
第1章 緒論 1
1.1 數據結構的基本概念 1
1.1.1 為什麼要學習數據結構 1
1.1.2 什麼是數據結構 2
1.1.3 數據類型與抽象數據類型 5
1.2 算法 7
1.2.1 什麼是算法 7
1.2.2 算法分析 9
1.2.3 算法設計 12
1.3 Visual C++集成開發環境 14
1.3.1 Visual C++ 2008集成開發環境 14
1.3.2 新建、編輯、編譯和運行C++程式 16
1.3.3 程式調試技術 20
習題1 23
實驗1 算法設計與分析 24
第2章 線性表 25
2.1 線性表抽象數據類型 25
2.2 線性表的順序存儲和實現 26
2.2.1 線性表的順序存儲結構 26
2.2.2 順序表 28
2.2.3 排序順序表 41
2.3 線性表的鏈式存儲和實現 49
2.3.1 線性表的鏈式存儲結構 49
2.3.2 單鍊表 50
2.3.3 雙鍊表 63
2.4 線性表的套用:多項式的表示及運算 68
2.4.1 一元多項式的表示及運算 68
2.4.2 二元多項式的表示及運算 70
習題2 71
實驗2 線性表的基本操作 71
第3章 串 75
3.1 串抽象數據類型 75
3.2 串的存儲和實現 76
3.2.1 串的存儲結構 76
3.2.2 使用char*表示字元串存在錯誤 77
3.2.3 字元串類 79
3.3 串的模式匹配 83
3.3.1 Brute-Force算法 84
3.3.2 KMP算法 88
習題3 95
實驗3 串的基本操作及模式匹配算法 95
第4章 棧和佇列 98
4.1 棧 98
4.1.1 棧抽象數據類型 98
4.1.2 順序棧 99
4.1.3 鏈式棧 100
4.1.4 棧的套用 101
4.2 佇列 107
4.2.1 佇列抽象數據類型 107
4.2.2 順序佇列 107
4.2.3 鏈式佇列 110
4.2.4 佇列的套用 112
4.3 優先佇列 113
4.4 遞歸 116
習題4 121
實驗4 棧和佇列以及遞歸算法 122
第5章 數組和廣義表 125
5.1 數組 125
5.2 特殊矩陣的壓縮存儲 131
5.2.1 三角矩陣、對稱矩陣和對角矩陣的壓縮存儲 131
5.2.2 稀疏矩陣的壓縮存儲 133
5.3 廣義表 139
習題5 143
實驗5 特殊矩陣和廣義表的存儲和運算 144
第6章 樹和二叉樹 146
6.1 樹及其抽象數據類型 146
6.1.1 樹定義 146
6.1.2 樹的術語 147
6.1.3 樹的表示法 148
6.1.4 樹抽象數據類型 148
6.2 二叉樹 149
6.2.1 二叉樹定義 149
6.2.2 二叉樹性質 150
6.2.3 二叉樹的遍歷及構造規則 151
6.2.4 二叉樹的存儲結構 154
6.2.5 二叉樹的二叉鍊表實現 156
6.3 線索二叉樹 168
6.3.1 線索二叉樹定義 168
6.3.2 中序線索二叉樹 170
6.4 Huffman樹 176
6.4.1 Huffman編碼 176
6.4.2 Huffman樹及其構造算法 177
6.5 樹的表示和實現 184
6.5.1 樹的遍歷規則 184
6.5.2 樹的存儲結構 184
6.5.3 樹的父母孩子兄弟鍊表實現 185
習題6 188
實驗6 樹和二叉樹的基本操作 190
第7章 圖 193
7.1 圖及其抽象數據類型 193
7.1.1 圖的基本概念 193
7.1.2 圖抽象數據類型 197
7.2 圖的表示和實現 197
7.2.1 圖的鄰接矩陣表示和實現 197
7.2.2 圖的鄰接表表示和實現 205
7.2.3 圖的鄰接多重表表示 211
7.3 圖的遍歷 212
7.3.1 圖的深度優先搜尋遍歷 213
7.3.2 圖的廣度優先搜尋遍歷 216
7.4 最小生成樹 218
7.4.1 生成樹 218
7.4.2 最小生成樹的構造算法 220
7.5 最短路徑 224
7.5.1 單源最短路徑 224
7.5.2 每對頂點間的最短路徑 229
習題7 233
實驗7 圖的表示和操作 234
第8章 查找 235
8.1 查找的基本概念 235
8.2 基於排序順序表的二分法查找 237
8.3 基於索引表的分塊查找 239
8.4 散列 244
8.5 二叉排序樹和平衡二叉樹 252
8.5.1 二叉排序樹 252
8.5.2 平衡二叉樹 257
習題8 261
實驗8 查找算法 262
第9章 排序 263
9.1 排序的基本概念 263
9.2 插入排序 264
9.2.1 直接插入排序和折半插入排序 264
9.2.2 希爾排序 266
9.3 交換排序 268
9.3.1 冒泡排序 268
9.3.2 快速排序 269
9.4 選擇排序 272
9.4.1 直接選擇排序 272
9.4.2 堆排序 273
9.5 歸併排序 277
9.6 單/雙鍊表的排序算法 279
習題9 283
實驗9 排序算法設計及分析 283
第10章 綜合套用設計 285
10.1 算法設計策略 285
10.1.1 分治法 285
10.1.2 動態規劃法 287
10.1.3 貪心法 289
10.1.4 回溯法 300
10.2 課程設計的目的、要求和選題 311
附錄A ASCII碼錶(前128個) 316
附錄B C++運算符及其優先權 317
參考文獻 318

相關詞條

熱門詞條

聯絡我們