數據結構:C++語言描述

數據結構:C++語言描述

C++是C語言的繼承,它既可以進行C語言的過程化程式設計,又可以進行以抽象數據類型為特點的基於對象的程式設計,還可以進行以繼承和多態為特點的面向對象的程式設計。C++擅長面向對象程式設計的同時,還可以進行基於過程的程式設計,因而C++就適應的問題規模而論,大小由之。

C++不僅擁有計算機高效運行的實用性特徵,同時還致力於提高大規模程式的編程質量與程式設計語言的問題描述能力。

基本介紹

  • 書名:數據結構:C++語言描述
  • 作者:蘇仕華 劉燕君 劉振安
  • ISBN:978-7-111-44926-3
  • 出版社:機械工業出版社 
  • 出版時間:2014-01-22
基本信息,內容簡介,目錄信息,

基本信息

數據結構:C++語言描述
書號: 44926
ISBN: 978-7-111-44926-3
作者: 蘇仕華 劉燕君 劉振安
印次: 1-1
開本: 16開
字數: 300千字
定價: 35.0
所屬叢書: 高等院校計算機教材系列
出版日期: 2014-01-22

內容簡介

本書使用模板描述算法,實現參數化類型,使得對算法的描述更接近自然語言和更容易理解。另外,書中還精選了典型例題、實驗和習題,並有配套的課程設計,幫助學生進一步加深對算法的理解。同時,為了方便讀者考研,本書還專門單列一章考研指導,並給出了一些複習方法、考試技巧以及真題練習和參考答案,指導讀者複習並深入掌握相關知識。本書取材新穎、結構合理、概念清楚、語言簡潔、通俗易懂、實用性強,重在培養學生對各種基本算法的理解和套用技能,特別適合作為高等院校相關專業的教材,也可以作為培訓班教材、自學教材及工程技術人員的參考書

目錄信息

前言
第1章 數據結構概論1
1.1 引言1
1.2 基本概念和常用術語2
1.3 算法的描述和分析5
1.3.1 算法描述5
1.3.2 算法分析6
實驗1 求解雞兔同籠問題9
習題19
第2章 類和類模板基礎11
2.1 使用類和對象11
2.1.1 使用對象和指針11
2.1.2 new和delete運算符13
2.2 類模板14
2.3 友元函式和友元類15
2.4 使用組合18
2.5 套用實例21
2.5.1 使用類求解一元二次方程21
2.5.2 使用類模板和頭檔案求解一元二次方程25
2.6 使用模板描述算法的優點和注意事項27
實驗2 多檔案編程28
習題228
第3章 線性表30
3.1 線性表的類型定義30
3.1.1 線性表的邏輯定義30
3.1.2 線性表的抽象數據類型30
3.2 線性表的順序存儲及基本運算31
3.2.1 線性表的順序存儲31
3.2.2 順序表上基本運算的實現32
3.2.3 順序表運算套用實例36
3.2.4 線性順序表元素為結構的實例37
3.3 線性表的鏈式存儲結構39
3.3.1 線性鍊表39
3.3.2 單鍊表上的基本運算40
3.3.3 單鍊表上的其他典型運算46
3.3.4 雙向鍊表49
3.4 順序表和鍊表的比較53
實驗3 實現一元多項式的加法運算54
習題354
第4章 棧和佇列57
4.1 棧57
4.1.1 棧的定義及抽象數據類型57
4.1.2 棧的存儲表示和實現58
4.2 棧套用實例63
4.2.1 圓括弧匹配的檢驗63
4.2.2 字元串回文的判斷63
4.2.3 數制轉換64
4.2.4 棧與遞歸65
4.3 佇列67
4.3.1 抽象數據類型68
4.3.2 順序循環佇列68
4.3.3 鏈佇列73
4.4 棧和佇列套用實例——表達式求值77
4.4.1 中綴表達式到後綴表達式的轉換78
4.4.2 後綴表達式的計算80
實驗4 八皇后問題82
習題482
第5章 字元串86
5.1 串定義及其運算86
5.1.1 串的基本概念86
5.1.2 串的抽象數據類型86
5.1.3 串的存儲結構87
5.2 串的順序存儲結構87
5.2.1 順序串的類型定義和常用算法87
5.2.2 串基本運算的實現88
5.2.3 串定位(模式匹配)運算89
5.2.4 取子串運算(求子串)90
5.2.5 連線字元串運算90
5.2.6 演示字元串操作的實例91
5.3 串的鏈式存儲91
5.4 串運算套用實例92
實驗5 串模式匹配算法94
習題594
第6章 多維數組和廣義表96
6.1 多維數組和運算96
6.1.1 數組的抽象數據類型96
6.1.2 數組的順序存儲97
6.1.3 矩陣類的定義和運算97
6.2 矩陣的壓縮存儲102
6.2.1 特殊矩陣103
6.2.2 稀疏矩陣107
6.3 廣義表110
6.3.1 廣義表的定義111
6.3.2 廣義表的運算111
6.4 運算符重載112
6.4.1 重載對象的賦值運算符112
6.4.2 運算符重載的實質115
實驗6 稀疏矩陣的加法運算116
習題6116
第7章 樹和二叉樹118
7.1 樹的基本概念和術語118
7.2 二叉樹119
7.2.1 二叉樹的定義和性質119
7.2.2 二叉樹的抽象數據類型121
7.2.3 二叉樹的存儲結構121
7.3 二叉樹的運算123
7.3.1 二叉樹的生成123
7.3.2 二叉樹的遞歸遍歷及其算法124
7.3.3 二叉樹遞歸遍歷套用實例127
7.3.4 非遞歸的按層遍歷二叉鍊表130
7.3.5 二叉樹的非遞歸遍歷算法131
7.4 線索二叉樹133
7.4.1 二叉樹的線索化134
7.4.2 線索二叉鍊表上的運算135
7.5 樹和森林137
7.5.1 樹的存儲結構137
7.5.2 樹、森林與二叉樹的轉換139
7.5.3 樹和森林的遍歷140
7.6 哈夫曼樹及其套用141
7.6.1 最優二叉樹(哈夫曼樹)141
7.6.2 哈夫曼算法143
7.6.3 哈夫曼算法的實現143
7.6.4 哈夫曼編碼146
實驗7 二叉樹的遍歷與查找算法148
習題7149
第8章 圖151
8.1 圖的定義和基本術語151
8.2 圖的存儲結構153
8.2.1 鄰接矩陣表示法153
8.2.2 鄰接表表示法156
8.3 圖的遍歷160
8.3.1 深度優先搜尋160
8.3.2 廣度優先搜尋162
8.4 圖的生成樹和最小生成樹165
8.4.1 圖的生成樹165
8.4.2 最小生成樹166
8.5 最短路徑172
8.6 拓撲排序177
實驗8 實現無向網路的最小生成樹的普里姆算法182
習題8182
第9章 排序184
9.1 基本概念184
9.2 插入排序185
9.2.1 直接插入排序185
9.2.2 希爾排序186
9.3 交換排序187
9.3.1 冒泡排序188
9.3.2 快速排序189
9.4 選擇排序192
9.4.1 使用順序表結構實現直接選擇排序193
9.4.2 使用鏈式存儲結構實現直接選擇排序194
9.4.3 堆排序196
9.5 歸併排序199
9.6 分配排序:基數排序201
9.7 內部排序方法的分析比較203
實驗9 堆排序204
習題9204
第10章 查找207
10.1 基本概念207
10.2 順序表的查找207
10.2.1 順序查找208
10.2.2 二分查找209
10.2.3 分塊查找212
10.2.4 三種查找方法的比較213
10.3 樹表的查找213
10.3.1 二叉排序樹213
10.3.2 B樹217
10.3.3 B+樹221
10.4 散列表的查找222
10.4.1 散列表的概念222
10.4.2 散列函式的構造方法223
10.4.3 處理衝突的方法224
10.4.4 散列表查找226
實驗10 二叉排序樹231
習題10231
第11章 檔案234
11.1 基本概念234
11.2 順序檔案235
11.3 索引檔案235
11.4 索引順序檔案236
11.4.1 ISAM檔案236
11.4.2 VSAM檔案237
11.4.3 散列檔案237
11.5 多關鍵字檔案237
11.5.1 多重表檔案237
11.5.2 倒排檔案238
實驗11 使用檔案239
習題11240
附錄A 考研指導242
A.1 考綱要求242
A.1.1 緒論242
A.1.2 線性表242
A.1.3 棧、佇列和數組243
A.1.4 樹和二叉樹243
A.1.5 圖244
A.1.6 查找244
A.1.7 排序245
A.2 知識點、重難點解析246
A.3 複習方法247
A.4 考試技巧248
A.4.1 單項選擇題248
A.4.2 算法設計題249
A.5 實戰真題練習250
A.5.1 真題練習1250
A.5.2 真題練習2252
A.5.3 真題練習3255
A.5.4 真題練習4257
A.5.5 真題練習5259
A.6 真題練習參考答案261
A.6.1 真題1參考答案261
A.6.2 真題2參考答案263
A.6.3 真題3參考答案264
A.6.4 真題4參考答案267
A.6.5 真題5參考答案269
附錄B 七位ASCII代碼表271
參考文獻272

相關詞條

熱門詞條

聯絡我們