《數(shù)據(jù)結(jié)構(gòu):c++語言描述》使用模板描述算法,實現(xiàn)參數(shù)化類型,使得對算法的描述更接近自然語言和更容易理解。另外,書中還精選了典型例題、實驗和習題,并有配套的課程設(shè)計,幫助學生進一步加深對算法的理解。同時,為了方便讀者考研,本書還在附錄部分給出了考研指導,并提供了一些復習方法、考試技巧以及真題練習和參考答案,指導讀者復習并深入掌握相關(guān)知識。
《數(shù)據(jù)結(jié)構(gòu):c++語言描述》取材新穎、結(jié)構(gòu)合理、概念清楚、語言簡潔、通俗易懂、實用性強,重在培養(yǎng)學生對各種基本算法的理解和應(yīng)用技能,特別適合作為高等院校相關(guān)專業(yè)的教材,也可以作為培訓班教材、自學教材及工程技術(shù)人員的參考書。
《數(shù)據(jù)結(jié)構(gòu):c++語言描述》
前言
第1章數(shù)據(jù)結(jié)構(gòu)概論
1.1引言
1.2基本概念和常用術(shù)語
1.3算法的描述和分析
1.3.1算法描述
1.3.2算法分析
實驗1求解雞兔同籠問題
習題
第2章類和類模板基礎(chǔ)
2.1使用類和對象
2.1.1使用對象和指針
2.1.2 new和delete運算符
2.2類模板 《數(shù)據(jù)結(jié)構(gòu):c++語言描述》
前言
第1章數(shù)據(jù)結(jié)構(gòu)概論
1.1引言
1.2基本概念和常用術(shù)語
1.3算法的描述和分析
1.3.1算法描述
1.3.2算法分析
實驗1求解雞兔同籠問題
習題
第2章類和類模板基礎(chǔ)
2.1使用類和對象
2.1.1使用對象和指針
2.1.2 new和delete運算符
2.2類模板
2.3友元函數(shù)和友元類
2.4使用組合
2.5應(yīng)用實例
2.5.1使用類求解一元二次方程
2.5.2使用類模板和頭文件求解一元二次方程
2.6使用模板描述算法的優(yōu)點和注意事項
實驗2多文件編程
習題2
第3章線性表
3.1線性表的類型定義
3.1.1線性表的邏輯定義
3.1.2線性表的抽象數(shù)據(jù)類型
3.2線性表的順序存儲及基本運算
3.2.1線性表的順序存儲
3.2.2順序表上基本運算的實現(xiàn)
3.2.3順序表運算應(yīng)用實例
3.2.4線性順序表元素為結(jié)構(gòu)的實例
3.3線性表的鏈式存儲結(jié)構(gòu)
3.3.1線性鏈表
3.3.2單鏈表上的基本運算
3.3.3單鏈表上的其他典型運算
3.3.4雙向鏈表
3.4順序表和鏈表的比較
實驗3實現(xiàn)一元多項式的加法運算
習題3
第4章棧和隊列
4.1棧
4.1.1棧的定義及抽象數(shù)據(jù)類型
4.1.2棧的存儲表示和實現(xiàn)
4.2棧應(yīng)用實例
4.2.1圓括號匹配的檢驗
4.2.2字符串回文的判斷
4.2.3數(shù)制轉(zhuǎn)換
4.2.4棧與遞歸
4.3隊列
4.3.1抽象數(shù)據(jù)類型
4.3.2順序循環(huán)隊列
4.3.3鏈隊列
4.4棧和隊列應(yīng)用實例——表達式求值
4.4.1中綴表達式到后綴表達式的轉(zhuǎn)換
4.4.2后綴表達式的計算
實驗4八皇后問題
習題4
第5章字符串
5.1串定義及其運算
5.1.1串的基本概念
5.1.2串的抽象數(shù)據(jù)類型
5.1.3串的存儲結(jié)構(gòu)
5.2串的順序存儲結(jié)構(gòu)
5.2.1順序串的類型定義和常用算法
5.2.2串基本運算的實現(xiàn)
5.2.3串定位(模式匹配)運算
5.2.4取子串運算(求子串)
5.2.5連接字符串運算
5.2.6演示字符串操作的實例
5.3串的鏈式存儲
5.4串運算應(yīng)用實例
實驗5串模式匹配算法
習題5
第6章多維數(shù)組和廣義表
6.1多維數(shù)組和運算
6.1.1數(shù)組的抽象數(shù)據(jù)類型
6.1.2數(shù)組的順序存儲
6.1.3矩陣類的定義和運算
6.2矩陣的壓縮存儲
6.2.1特殊矩陣
6.2.2稀疏矩陣
6.3廣義表
6.3.1廣義表的定義
6.3.2廣義表的運算
6.4運算符重載
6.4.1重載對象的賦值運算符
6.4.2運算符重載的實質(zhì)
實驗6稀疏矩陣的加法運算
習題6
第7章樹和二叉樹
7.1樹的基本概念和術(shù)語
7.2二叉樹
7.2.1二叉樹的定義和性質(zhì)
7.2.2二叉樹的抽象數(shù)據(jù)類型
7.2.3二叉樹的存儲結(jié)構(gòu)
7.3二叉樹的運算
7.3.1二叉樹的生成
7.3.2二叉樹的遞歸遍歷及其算法
7.3.3二叉樹遞歸遍歷應(yīng)用實例
7.3.4非遞歸的按層遍歷二叉鏈表
7.3.5二叉樹的非遞歸遍歷算法
7.4線索二叉樹
7.4.1二叉樹的線索化
7.4.2線索二叉鏈表上的運算
7.5樹和森林
7.5.1樹的存儲結(jié)構(gòu)
7.5.2樹、森林與二叉樹的轉(zhuǎn)換
7.5.3樹和森林的遍歷
7.6哈夫曼樹及其應(yīng)用
7.6.1最優(yōu)二叉樹(哈夫曼樹)
7.6.2哈夫曼算法
7.6.3哈夫曼算法的實現(xiàn)
7.6.4哈夫曼編碼
實驗7二叉樹的遍歷與查找算法
習題7
第8章圖
8.1圖的定義和基本術(shù)語
8.2圖的存儲結(jié)構(gòu)
8.2.1鄰接矩陣表示法
8.2.2鄰接表表示法
8.3圖的遍歷
8.3.1深度優(yōu)先搜索
8.3.2廣度優(yōu)先搜索
8.4圖的生成樹和最小生成樹
8.4.1圖的生成樹
8.4.2最小生成樹
8.5最短路徑
8.6拓撲排序
實驗8實現(xiàn)無向網(wǎng)絡(luò)的最小生成樹的普里姆算法
習題8
第9章排序
9.1基本概念
9.2插入排序
9.2.1直接插入排序
9.2.2希爾排序
9.3交換排序
9.3.1冒泡排序
9.3.2快速排序
9.4選擇排序
9.4.1使用順序表結(jié)構(gòu)實現(xiàn)直接選擇排序
9.4.2使用鏈式存儲結(jié)構(gòu)實現(xiàn)直接選擇排序
9.4.3堆排序
9.5歸并排序
9.6分配排序:基數(shù)排序
9.7內(nèi)部排序方法的分析比較
實驗9堆排序
習題9
第10章查找
10.1基本概念
10.2順序表的查找
10.2.1順序查找
10.2.2二分查找
10.2.3分塊查找
10.2.4三種查找方法的比較
10.3樹表的查找
10.3.1二叉排序樹
10.3.2b樹
10.3.3b+樹
10.4散列表的查找
10.4.1散列表的概念
10.4.2散列函數(shù)的構(gòu)造方法
10.4.3處理沖突的方法
10.4.4散列表查找
實驗10二叉排序樹
習題10
第11章文件
11.1基本概念
11.2順序文件
11.3索引文件
11.4索引順序文件
11.4.1 isam文件
11.4.2 vsam文件
11.4.3散列文件
11.5多關(guān)鍵字文件
11.5.1多重表文件
11.5.2倒排文件
實驗11使用文件
習題11
附錄a考研指導
a.1考綱要求
a.1.1緒論
a.1.2線性表
a.1.3棧、隊列和數(shù)組
a.1.4樹和二叉樹
a.1.5圖
a.1.6查找
a.1.7排序
a.2知識點、重難點解析
a.3復習方法
a.4考試技巧
a.4.1單項選擇題
a.4.2算法設(shè)計題
a.5實戰(zhàn)真題練習
a.5.1真題練習
a.5.2真題練習
a.5.3真題練習
a.5.4真題練習
a.5.5真題練習
a.6真題練習參考答案
a.6.1真題1參考答案
a.6.2真題2參考答案
a.6.3真題3參考答案
a.6.4真題4參考答案
a.6.5真題5參考答案
附錄b七位ascii代碼表
參考文獻