C++與數據結構(第4版)

C++與數據結構(第4版)

《C++與數據結構(第4版)》是2018年2月電子工業出版社出版的圖書,作者是高飛。

基本介紹

  • 中文名:C++與數據結構(第4版)
  • 作者:高飛
  • ISBN:9787121315794
  • 頁數:364頁
  • 定價:52元
  • 出版社:電子工業出版社
  • 出版時間:2018年2月
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

本書是國家級(網路教育)精品課程的教學成果,也是北京市高等教育精品教材,根據教育部高等學校大學計算機課程教學指導委員會《大學計算機基礎課程教學基本要求》中有關理工類專業的計算機基礎課程教學要求組織編寫而成,內容由淺入深,案例豐富,通俗易懂,實用性強。本書在介紹了C++語言的程式設計方法的基礎上,採用面向對象的思想和抽象數據類型的概念,用C++語言有效地組織和描述了線性表、堆疊、佇列、樹和圖等各種典型的數據結構和相關類的實現,並介紹了每一種數據結構的不同存儲方法、典型操作及其套用。全書共11章,包括數據結構的基本概念,數組與指針,函式,C++編程基礎,繼承和多態,模板和STL,線性表,堆疊與佇列,樹與二叉樹,圖,查找與散列結構,排序等。本書各章配有習題和實驗訓練題,方便實踐教學,並為任課教師提供了電子課件和示例原始碼。本書可作為高等院校電子信息類以及其他相關專業本科生教材和教學參考書,也可供從事程式設計工程的人員參考使用。

圖書目錄

目 錄
第1章 數據結構的基本概念 1
1.1 數據結構的概念和術語 1
1.2 抽象數據類型 3
1.2.1 數據類型 3
1.2.2 數據抽象與抽象數據類型 4
1.3 算法和算法分析 5
1.3.1 算法 5
1.3.2 算法設計的要求 5
1.3.3 算法效率的度量 6
1.4 面向對象概述 8
1.4.1 面向對象的思想 9
1.4.2 面向對象程式設計 9
1.4.3 面向對象的語言 9
1.4.4 面向對象的基本概念 10
1.4.5 面向對象的基本特性 11
1.5 本章小結 13
習題1 13
第2章 C++初步知識 14
2.1 C++語言 14
2.2 數組 14
2.2.1 一維數組 15
2.2.2 二維數組 17
2.2.3 字元數組和字元串 20
2.3 指針 24
2.3.1 指針的概念 24
2.3.2 指針的定義 24
2.3.3 指針的運算 25
2.4 指針和數組 27
2.4.1 指針與數組名 27
2.4.2 指向數組的指針 28
2.4.3 存儲指針的數組 31
2.4.4 動態存儲 32
2.5 結構 34
2.5.1 結構類型的定義 34
2.5.2 結構變數的說明 35
2.5.3 結構成員的引用 36
2.5.4 結構數組和結構指針 37
2.6 函式 39
2.6.1 函式的聲明、定義和調用 40
2.6.2 函式的參數傳遞 41
2.6.3 帶默認參數的函式 42
2.6.4 內置函式 43
2.6.5 函式的重載 44
2.7 本章小結 45
習題2 45
實驗訓練2 45
第3章 C++類及其對象的封裝性 48
3.1 類的聲明和對象的定義 48
3.1.1 聲明類類型 48
3.1.2 定義對象的方法 50
3.1.3 對象成員的引用 51
3.2 類的成員函式 52
3.2.1 成員函式的訪問屬性 52
3.2.2 在類外定義成員函式 52
3.2.3 內置成員函式 53
3.2.4 成員函式的存儲方式 54
3.3 構造函式和析構函式 55
3.3.1 對象的初始化 55
3.3.2 構造函式的作用 55
3.3.3 帶參數的構造函式 57
3.3.4 構造函式的重載 58
3.3.5 拷貝構造函式 58
3.3.6 析構函式 59
3.4 相關特性 61
3.4.1 引用 61
3.4.2 友元 67
3.4.3 運算符重載 70
3.5 本章小結 77
習題3 77
實驗訓練3 78
第4章 繼承性和多態性 81
4.1 繼承與派生的概念 81
4.1.1 派生類的聲明與構成 81
4.1.2 派生類成員的訪問 83
4.2 派生類的構造函式和析構函式 87
4.2.1 簡單的派生類的構造函式 87
4.2.2 有子對象的派生類的構造函式 88
4.2.3 多級派生時的構造函式 90
4.2.4 派生類的析構函式 91
4.3 多繼承 92
4.3.1 多繼承的聲明與使用 92
4.3.2 多繼承引起的二義性問題 94
4.3.3 虛基類的概念與使用 96
4.4 多態性與虛函式 99
4.4.1 多態的概念 99
4.4.2 虛函式的定義與使用 99
4.4.3 虛析構函式 103
4.4.4 純虛函式與抽象類 104
4.5 本章小結 107
習題4 107
實驗訓練4 107
第5章 模板與標準模板庫 112
5.1 模板 112
5.1.1 模板的概念 112
5.1.2 函式模板 112
5.1.3 類模板 117
5.2 標準模板庫 120
5.3 序列式容器 121
5.3.1 vector容器 121
5.3.2 使用疊代器 123
5.3.3 list容器 124
5.4 關聯式容器 125
5.4.1 pair類型 126
5.4.2 map容器 127
5.4.3 set容器 128
5.5 本章小結 130
習題5 131
實驗訓練5 131
第6章 線性表 133
6.1 線性表的定義 133
6.1.1 線性表的邏輯結構 133
6.1.2 線性表的抽象類定義 134
6.2 線性表的順序表示和實現 135
6.2.1 線性表的順序表示 135
6.2.2 順序表類的定義 135
6.2.3 順序表類的實現 136
6.3 線性表的鏈式表示和實現 140
6.3.1 線性表的鏈式表示 140
6.3.2 抽象鍊表類的定義 140
6.3.3 抽象鍊表類各成員函式的實現 142
6.4 單鍊表 143
6.4.1 單鍊表的定義 143
6.4.2 單鍊表類的定義 144
6.4.3 單鍊表的常用成員函式的實現 144
6.4.4 單鍊表舉例——一元多項式加法 147
6.5 循環鍊表 150
6.5.1 循環鍊表的定義 150
6.5.2 循環鍊表類的定義 150
6.5.3 循環鍊表常用函式的實現 151
6.5.4 循環鍊表舉例——約瑟夫問題 155
6.6 雙向鍊表 155
6.6.1 雙向鍊表的定義 155
6.6.2 雙向鍊表類的定義 156
6.6.3 雙向鍊表的常用成員函式的實現 157
6.7 本章小結 161
習題6 161
實驗訓練6 162
第7章 堆疊、佇列和遞歸 169
7.1 堆疊的概念及其運算 169
7.2 抽象堆疊類的定義 170
7.3 堆疊的定義及其實現 170
7.3.1 順序棧的定義 170
7.3.2 順序棧類的定義及典型成員函式
的實現 171
7.3.3 多棧共享空間問題 174
7.3.4 鏈棧的定義 175
7.3.5 鏈式棧類的定義及典型成員函式
的實現 176
7.4 堆疊的套用舉例 179
7.4.1 數制轉換 179
7.4.2 迷宮問題 180
7.5 佇列的概念及其運算 183
7.6 抽象佇列類的定義 184
7.7 佇列的定義及其實現 184
7.7.1 佇列的順序存儲結構 184
7.7.2 循環佇列的定義 186
7.7.3 順序循環佇列類的定義及常用
成員函式的實現 187
7.7.4 鏈式佇列的定義 189
7.7.5 鏈式佇列類的定義及常用成員
函式的實現 190
7.7.6 鏈式佇列的套用舉例 193
7.7.7 優先權佇列的定義 194
7.7.8 優先權佇列類的定義及常用
成員函式的實現 194
7.8 遞歸 197
7.8.1 遞歸的概念 197
7.8.2 遞歸的套用 198
7.8.3 遞歸在計算機中的實現 199
7.8.4 遞歸問題的非遞歸算法 201
7.9 本章小結 204
習題7 204
實驗訓練7 205
第8章 樹與二叉樹 212
8.1 樹、二叉樹和森林的基本概念 212
8.1.1 樹 212
8.1.2 二叉樹 213
8.1.3 樹與森林的存儲結構 218
8.2 二叉樹的抽象類和樹的類 222
8.2.1 二叉樹的抽象類 222
8.2.2 樹的類 227
8.3 二叉樹的遍歷和樹的遍歷 233
8.3.1 二叉樹的遍歷 233
8.3.2 樹的遍歷 236
8.4 二叉排序樹 239
8.5 二叉樹的計數 244
8.6 哈夫曼樹及其套用 244
8.6.1 最優二叉樹 244
8.6.2 哈夫曼編碼 246
8.7 本章小結 247
習題8 247
實驗訓練8 248
第9章 圖 253
9.1 圖的基本概念 253
9.1.1 圖的定義 253
9.1.2 圖的術語 254
9.1.3 圖的基本操作 256
9.1.4 圖的存儲表示 256
9.2 圖的抽象類 260
9.2.1 圖的鄰接矩陣類 261
9.2.2 圖的鄰接表類 265
9.3 圖的遍歷 271
9.3.1 深度優先搜尋 272
9.3.2 廣度優先搜尋 273
9.4 圖的連通性與最小生成樹 274
9.4.1 無向圖的連通分量和生成樹 274
9.4.2 最小生成樹 274
9.4.3 關節點和重連通分量 279
9.5 最短路徑 281
9.5.1 圖結點的可達性 281
9.5.2 從某個源點到其餘各頂點的
最短路徑 282
9.5.3 每一對頂點之間的最短路徑 284
9.6 活動網路 286
9.6.1 AOV網路 286
9.6.2 AOE網路 287
9.7 本章小結 288
習題9 289
實驗訓練9 290
第10章 查找與散列結構 300
10.1 基本概念 300
10.2 靜態查找表 301
10.2.1 順序表的查找 301
10.2.2 有序表的查找 303
10.2.3 索引順序表的查找 305
10.3 動態查找表 306
10.4 Hash表及其查找 307
10.4.1 Hash表 307
10.4.2 Hash函式的構造方法 309
10.4.3 處理衝突的方法 312
10.4.4 Hash表的查找及其分析 313
10.5 本章小結 315
習題10 315
實驗訓練10 316
第11章 排序 324
11.1 排序的基本概念 324
11.2 插入排序 326
11.2.1 直接插入排序 326
11.2.2 其他插入排序 327
11.2.3 希爾排序 330
11.3 快速排序 331
11.4 選擇排序 334
11.4.1 簡單選擇排序 334
11.4.2 錦標賽排序 335
11.4.3 堆排序 338
11.5 歸併排序 343
11.5.1 歸併 343
11.5.2 疊代的歸併排序算法 344
11.6 基數排序 346
11.6.1 多關鍵字排序 346
11.6.2 鏈式基數排序 346
11.7 本章小結 348
習題11 349
實驗訓練11 349
參考文獻 354

相關詞條

熱門詞條

聯絡我們