數據結構(STL框架)

數據結構(STL框架)

全書採用面向對象的C++語言作為描述語言,以STL的設計理念為描述和實現框架,內容豐富,敘述簡明,理論與實踐並重,每章設計有套用舉例、數據結構與算法實驗題,並為任課教師免費提供電子課件和課程實驗用數據。

圖書簡介

數據結構(STL框架)

普通高等教育“十一五”國家級規劃教材、國家精品課程主講教材

作者:王曉東
定價:34.80元
印次:1-2
ISBN:9787302203933
出版日期:2009.09.01
印刷日期:2011.01.17

本書以ACM和IEEE/CS Computing Curricula 2005課程體系以及教育部計算機科學與技術教學指導委員會發布的“高等學校計算機科學與技術本科專業規範”中制定的關於數據結構和算法設計與分析的知識結構和體系為依據,以基本數據結構和抽象數據類型為知識單元而編寫。本書一個明顯的特色是在STL (Standard Template Library)框架下描述數據結構的設計思想和實現方法,使讀者循序漸進地理解數據抽象,面向對象設計方法和泛型算法設計三位一體的面向高層次的現代化軟體設計風格。全書共分16章,涵蓋 CC2005 課程體系中有關算法與數據結構、知識結構和體系的重要內容,包括算法與數據結構引論、向量、雙端佇列、表、棧和佇列、排序與選擇、樹、二叉搜尋樹、平衡搜尋樹、集合、映射、堆與優先佇列、散列、並查集、圖與相關算法。

本書可作為高等學校計算機、電子信息、信息與計算科學、信息管理與信息系統等專業數據結構課程教材,也適合工程技術人員和自學者學習參考。

目錄

第1章 算法與數據結構引論1

1.1 算法及其複雜性的概念1

1.1.1 算法與程式1

1.1.2 算法複雜性的概念1

1.1.3 算法複雜性的漸近性態2

1.2 數據結構與抽象數據類型3

1.3 用C++描述數據結構與算法4

1.3.1 指針和引用4

1.3.2 函式與參數傳遞4

1.3.3 C++的類5

1.3.4 類的對象6

1.3.5 模板6

1.3.6 動態存儲分配7

1.4 遞歸8

1.5 標準模板庫STL與泛型算法9

1.5.1 STL概述9

1.5.2 容器10

1.5.3 疊代器10

1.5.4 泛型算法11

1.5.5 函式對象14

1.6 套用舉例19

1.6.1 用C++的類實現抽象數據類型19

1.6.2 順序搜尋與二分搜尋算法的設計與分析23

1.6.3 遞歸算法的設計與分析25

習題126

數據結構與算法實驗127

數據結構與算法實驗題1.1 實係數復變多項式問題27

數據結構與算法實驗題1.2 平面幾何問題28

數據結構與算法實驗題1.3 m進制數問題29

第2章 向量30

2.1 向量的基本概念30

2.2 抽象數據類型向量30

2.3 向量的疊代器30

2.4 向量的實現方法31

2.5 矩陣與多維向量35

2.6 高精度整數36

2.7 套用舉例47

2.7.1 搜尋公共元素問題47

2.7.2 同色方塊識別問題48

2.7.3 全排列問題49

習題249

數據結構與算法實驗250

數據結構與算法實驗題2.1 前綴與後綴和問題50

數據結構與算法實驗題2.2投票選舉問題50

數據結構與算法實驗題2.3穩定婚姻問題51

數據結構與算法實驗題2.4凸多邊形的三角剖分問題52

目錄數據結構(STL框架)第3章雙端佇列53

3.1雙端佇列的基本概念53

3.2抽象數據類型雙端佇列53

3.3雙端佇列的實現方法54

3.4雙端佇列的疊代器60

3.5套用舉例62

3.5.1雙端佇列的簡單套用62

3.5.2簡單多邊形的凸殼問題63

習題365

數據結構與算法實驗365

數據結構與算法實驗題3.1排隊購票問題65

數據結構與算法實驗題3.2循環向量的極值問題66

第4章線性表68

4.1表的基本概念68

4.2用數組實現表69

4.3用指針實現表73

4.3.1用指針實現單鍊表的方法73

4.3.2單鍊表的疊代器75

4.4用間接定址方法實現表79

4.4.1間接定址方法的基本思想79

4.4.2間接定址表的疊代器82

4.5用游標實現表84

4.5.1用游標實現表的基本思想84

4.5.2游標實現的表的疊代器89

4.6循環鍊表90

4.6.1實現單循環鍊表的基本思想90

4.6.2單循環鍊表的疊代器92

4.7雙鍊表94

4.7.1實現雙向循環鍊表的基本思想94

4.7.2雙向循環鍊表的疊代器97

4.8套用舉例101

4.8.1多項式函式101

4.8.2Josephus排列問題106

習題4107

數據結構與算法實驗4108

數據結構與算法實驗題4.1實係數一元多項式問題108

數據結構與算法實驗題4.2Josephus排列問題1109

數據結構與算法實驗題4.3向量分類問題110

數據結構與算法實驗題4.4條形圖輪廓問題110

數據結構與算法實驗題4.5Josephus排列問題2111

第5章棧113

5.1棧的基本概念113

5.2棧的實現方法114

5.3套用舉例115

5.3.1等價類劃分問題115

5.3.2模擬遞歸問題117

5.3.3電路板布線問題119

習題5121

數據結構與算法實驗5121

數據結構與算法實驗題5.1車皮編序問題121

數據結構與算法實驗題5.2單柱Hanoi塔問題122

數據結構與算法實驗題5.3多棧模擬問題123

數據結構與算法實驗題5.4親兄弟問題124

第6章佇列125

6.1佇列的基本概念125

6.2佇列的實現方法125

6.3套用舉例126

6.3.1最優電路布線問題126

6.3.2和諧簡訊問題129

習題6130

數據結構與算法實驗6130

數據結構與算法實驗題6.1組佇列問題130

數據結構與算法實驗題6.2雙棧佇列問題131

數據結構與算法實驗題6.3猴子分桃問題132

數據結構與算法實驗題6.4逆序表問題132

第7章排序與選擇134

7.1簡單排序算法134

7.1.1冒泡排序算法134

7.1.2插入排序算法135

7.1.3選擇排序算法136

7.1.4簡單排序算法的計算複雜性136

7.2快速排序算法137

7.2.1算法基本思想及實現137

7.2.2算法性能分析139

7.2.3隨機快速排序算法139

7.3合併排序算法140

7.3.1算法基本思想及實現140

7.3.2消除遞歸141

7.3.3自然合併排序算法141

7.4鍊表排序與索引排序算法142

7.4.1鍊表排序算法142

7.4.2索引排序算法149

7.5線性時間排序算法151

7.5.1計數排序算法151

7.5.2桶排序算法152

7.6中位數與第k小元素152

7.6.1平均情況下的線性時間選擇算法153

7.6.2最壞情況下的線性時間選擇算法154

7.7泛型排序算法156

7.7.1排序算法的泛化方法156

7.7.2泛型合併排序算法158

7.7.3泛型快速排序算法159

7.7.4泛型選擇算法160

7.8套用舉例161

7.8.1區間覆蓋問題161

7.8.2輸油管道問題161

習題7162

數據結構與算法實驗7163

數據結構與算法實驗題7.1交換排序問題163

數據結構與算法實驗題7.2DNA排序問題163

數據結構與算法實驗題7.3郵局選址問題164

數據結構與算法實驗題7.4最優服務次序問題165

第8章樹166

8.1樹的定義166

8.2樹的遍歷168

8.3樹的表示法170

8.3.1父結點數組表示法170

8.3.2兒子鍊表表示法170

8.3.3左兒子右兄弟表示法171

8.4二叉樹的基本概念171

8.5二叉樹的運算173

8.6二叉樹的實現174

8.6.1二叉樹的順序存儲結構174

8.6.2二叉樹的結點度表示法175

8.6.3用指針實現二叉樹176

8.7線索二叉樹179

8.8套用舉例--信號增強裝置布局問題181

習題8184

數據結構與算法實驗8185

數據結構與算法實驗題8.1層序列表問題185

數據結構與算法實驗題8.2最近公共祖先問題186

數據結構與算法實驗題8.3子樹問題187

數據結構與算法實驗題8.4同構二叉樹問題187

數據結構與算法實驗題8.5後序中序遍歷問題188

第9章二叉搜尋樹189

9.1有序集與二叉搜尋樹189

9.1.1抽象數據類型字典189

9.1.2用數組實現字典189

9.1.3二叉搜尋樹的基本概念190

9.2實現二叉搜尋樹190

9.3二叉搜尋樹的疊代器199

9.4二叉搜尋樹的效率205

9.5套用舉例--條形圖統計問題207

習題9209

數據結構與算法實驗9209

數據結構與算法實驗題9.1裝箱問題209

數據結構與算法實驗題9.2電路板連線問題210

數據結構與算法實驗題9.3字典問題211

第10章平衡搜尋樹212

10.1紅黑樹212

10.1.1紅黑樹的定義和性質212

10.1.2旋轉變換213

10.1.3紅黑樹的插入運算與重平衡216

10.1.4紅黑樹的刪除運算與重平衡218

10.2AVL樹223

10.2.1AVL樹的定義和性質223

10.2.2AVL樹的插入運算與重平衡224

10.2.3AVL樹的刪除運算與重平衡226

10.3套用舉例229

10.3.1條形圖統計問題229

10.3.2動態選擇問題230

10.3.3Josephus排列問題232

習題10233

數據結構與算法實驗10234

數據結構與算法實驗題10.1逆序計數問題234

數據結構與算法實驗題10.2k後繼問題234

數據結構與算法實驗題10.3圓內相交弦問題235

數據結構與算法實驗題10.4最小間隙問題236

數據結構與算法實驗題10.5圖形周長問題237

數據結構與算法實驗題10.6動態選擇問題237

第11章集合239

11.1集合的基本概念239

11.2用位向量實現集合240

11.3用平衡二叉搜尋樹實現集合246

11.3.1直接套用紅黑樹實現集合246

11.3.2平衡二叉搜尋樹的泛化247

11.3.3符合STL標準的集合252

11.4多重集合254

11.5泛型集合運算256

11.6套用舉例259

11.6.1Eratosthenes篩法259

11.6.2子集和問題260

11.6.3拼寫檢查問題260

11.6.4軟體產品資料庫問題261

習題11262

數據結構與算法實驗11263

數據結構與算法實驗題11.1半數集問題263

數據結構與算法實驗題11.2賬單支付問題263

數據結構與算法實驗題11.3張貼海報問題264

數據結構與算法實驗題11.4三色棋遊戲問題265

第12章映射266

12.1映射的基本概念266

12.2用平衡二叉搜尋樹實現映射266

12.2.1二叉搜尋樹的進一步泛化266

12.2.2符合STL標準的映射272

12.3多重映射274

12.4套用舉例275

12.4.1種群分布統計問題275

12.4.2電子字典問題276

習題12278

數據結構與算法實驗12278

數據結構與算法實驗題12.1工作薪酬問題278

數據結構與算法實驗題12.2撲克遊戲智慧型分析問題279

數據結構與算法實驗題12.3最優行駛路線問題280

數據結構與算法實驗題12.4庫存調整問題281

數據結構與算法實驗題12.5雙字元字頻分析問題282

數據結構與算法實驗題12.6英文辭彙分析問題283

第13章散列285

13.1符號表285

13.2開散列286

13.3閉散列292

13.4散列函式的效率297

13.5重新散列298

13.6散列集299

13.6.1用散列表實現集合299

13.6.2用散列表實現多重集合300

13.7散列映射301

13.7.1開散列表的泛化301

13.7.2用散列表實現映射307

13.7.3用散列表實現多重映射308

13.8套用舉例309

13.8.1字元串頻率統計問題309

13.8.2拼寫檢查問題310

13.8.3種群分布統計問題311

13.8.4電子字典問題312

習題13313

數據結構與算法實驗13313

數據結構與算法實驗題13.1偽隨機排列問題313

數據結構與算法實驗題13.2字元串散列問題314

數據結構與算法實驗題13.3英文文本分析問題314

數據結構與算法實驗題13.4最長模式串問題315

第14章堆與優先佇列316

14.1優先佇列的基本概念316

14.2優先權樹和堆316

14.3堆的順序存儲方式317

14.4堆的有關算法318

14.5堆的泛型算法323

14.6用堆實現優先佇列326

14.7可並優先佇列327

14.7.1左偏樹的定義327

14.7.2用左偏樹實現可並優先佇列328

14.7.3泛化左偏樹331

14.8套用舉例332

14.8.1優先佇列的比較模式332

14.8.2哈夫曼編碼問題334

14.8.3活動安排問題337

習題14338

數據結構與算法實驗14338

數據結構與算法實驗題14.1區間相交問題338

數據結構與算法實驗題14.2整數字典問題338

數據結構與算法實驗題14.3最小權語言問題339

數據結構與算法實驗題14.4二叉搜尋堆問題339

數據結構與算法實驗題14.5區間覆蓋問題340

數據結構與算法實驗題14.6批作業調度問題341

第15章並查集342

15.1並查集的基本概念342

15.2用父結點向量實現並查集343

15.3套用舉例--離線最小值問題346

習題15347

數據結構與算法實驗15348

數據結構與算法實驗題15.1二進制方程問題348

數據結構與算法實驗題15.2網路連通問題349

數據結構與算法實驗題15.3朋友問題349

數據結構與算法實驗題15.4等價類劃分問題350

第16章圖352

16.1圖的基本概念352

16.2抽象數據類型圖355

16.3圖的表示法355

16.3.1鄰接矩陣表示法355

16.3.2鄰接表表示法356

16.3.3緊縮鄰接表356

16.4用鄰接矩陣實現圖357

16.4.1用鄰接矩陣實現圖的方法357

16.4.2鄰接矩陣圖的頂點疊代器359

相關詞條

熱門詞條

聯絡我們