新編數據結構及算法教程(第2版)

《新編數據結構及算法教程(第2版)》是清華大學出版社出版圖書。

基本介紹

  • 中文名:新編數據結構及算法教程(第2版)
  • 作者:林碧英,石敏,焦潤海  
  • 出版時間:2021年7月1日
  • 出版社:清華大學出版社
  • ISBN:9787302578383
新編數據結構及算法教程(第2版)
本書不僅內容新穎,配套資源也非常豐富,包括課件、線上習題庫、微視頻、MOOC等。
作者:林碧英、石敏、焦潤海
定價:69元
印次:2-1
印刷日期:2021.07.05
內容簡介
數據結構是計算機及相關專業的核心基礎課程。特別是近年來快速發展的人工智慧技術,推動了一大批前沿交叉學科的產生及發展,數據結構也被列為這些學科的重要課程,備受廣大學生和專業人員的青睞。此外,數據結構還是各大高等院校招收計算機專業研究生的必考科目之一,其重要性不言而喻。 本書以提高計算機編程能力為宗旨,圍繞常用數據結構的分析、設計和基本算法實現,分為數據結構、套用算法以及附錄三部分進行介紹。其中,數據結構部分包括緒論、線性表、棧與佇列、數組與廣義表、樹與二叉樹、圖;套用部分包括查找和排序;附錄部分包括從科研項目中提煉出來的與數據結構緊密相關的一些實際問題。本書每章都有來自實際問題的數據結構套用的案例分析、設計與實現,每章後面還配有一定量的習題,便於學生自檢自測。
目錄
第1章緒論/1
1.1數據結構的起源與發展1
1.2基本概念和術語3
1.3理解數據結構4
1.4數據的邏輯結構和存儲結構5
1.4.1邏輯結構6
1.4.2存儲結構7
1.5數據類型和抽象數據類型9
1.5.1數據類型9
1.5.2抽象數據類型10
1.6算法與算法效率分析11
1.6.1數據結構與算法的關係11
1.6.2算法的定義12
1.6.3算法的5大特性12
1.6.4算法設計的要求13
1.6.5算法效率分析14
1.6.6算法的時間複雜度14
1.6.7算法存儲空間需求19
1.7預備知識20
1.7.1C函式20
1.7.2自定義數據類型名21
1.8本章小結23
1.9習題與實驗23
第2章線性表/26
2.1問題的提出27
2.2線性表28
2.2.1線性表的定義28
2.2.2線性表的順序存儲結構31
2.2.3順序表的基本操作實現33
2.2.4線性表的鏈式存儲結構42
2.2.5單向鍊表的基本操作實現44
2.2.6線性表的兩種存儲結構的區別55
2.3案例實現56
2.3.1基於順序表的新生成績管理系統56
2.3.2基於單向鍊表的新生成績管理系統60
2.4其他形式的鍊表61
2.4.1單向循環鍊表的定義61
2.4.2單向循環鍊表的基本操作實現63
2.4.3雙向循環鍊表的定義65
2.4.4雙向循環鍊表的基本操作實現66
2.5線性表的套用68
2.5.1兩個線性表的合併68
2.5.2一元多項式的套用71
2.6字元串匹配算法75
2.6.1串的基本概念75
2.6.2串的模式匹配算法75
2.7本章小結83
2.8習題與實驗84
新編數據結構及算法教程(第2版)目錄第3章棧與佇列/88
3.1問題的提出88
3.2棧90
3.2.1棧的定義90
3.2.2棧的順序存儲結構91
3.2.3順序棧的基本操作實現93
3.2.4棧的鏈式存儲結構97
3.2.5鏈棧的基本操作實現97
3.2.6棧的兩種存儲結構的區別101
3.2.7案例實現: 基於棧的括弧匹配101
3.3棧的套用103
3.3.1表達式求值103
3.3.2棧與遞歸109
3.4佇列117
3.4.1佇列的定義117
3.4.2佇列的順序存儲結構119
3.4.3循環佇列的基本操作實現121
3.4.4佇列的鏈式存儲結構125
3.4.5鏈佇列的基本操作實現126
3.4.6佇列的兩種存儲結構的區別130
3.4.7案例實現: 基於佇列的醫院掛號模擬系統130
3.5佇列的套用132
3.6共用棧和雙佇列138
3.6.1共用棧138
3.6.2雙端佇列140
3.7本章小結140
3.8習題與實驗141
第4章數組與廣義表/146
4.1多維數組146
4.1.1數組的邏輯結構146
4.1.2數組的記憶體映像147
4.2特殊矩陣的壓縮存儲149
4.2.1對稱矩陣150
4.2.2三角矩陣151
4.2.3帶狀矩陣152
4.3稀疏矩陣153
4.3.1稀疏矩陣的三元組表存儲153
4.3.2稀疏矩陣的十字鍊表存儲159
4.4廣義表164
4.4.1廣義表的定義和基本運算164
4.4.2廣義表的存儲166
4.4.3廣義表基本操作的實現169
4.5本章小結171
4.6習題與實驗171
第5章樹和二叉樹/174
5.1問題的提出175
5.2樹的定義和基本術語176
5.2.1樹的遞歸定義176
5.2.2樹的基本術語176
5.2.3樹的表示177
5.2.4樹的抽象數據類型描述179
5.3二叉樹及其套用179
5.3.1二叉樹的定義179
5.3.2二叉樹的性質181
5.3.3二叉樹的抽象數據類型183
5.3.4二叉樹的存儲結構185
5.3.5二叉樹的遍歷188
5.3.6二叉樹遍歷的遞歸算法188
5.3.7二叉樹遍歷的非遞歸算法190
5.3.8二叉樹的層次遍歷算法197
5.3.9二叉樹遍歷算法的套用199
5.3.10案例實現: 基於表達式二叉樹的動態表達式計算214
5.4線索二叉樹215
5.4.1線索二叉樹的定義215
5.4.2線索二叉樹的基本操作實現217
5.4.3基於中序線索二叉樹的遍歷算法223
5.5樹、森林與二叉樹的轉換及其套用224
5.5.1樹、森林與二叉樹的轉換224
5.5.2樹的存儲結構225
5.5.3樹的簡單套用230
5.5.4樹和森林的遍歷237
5.5.5案例實現: 基於樹結構的行政機構管理239
5.6哈夫曼樹及其套用241
5.6.1最優二叉樹——哈夫曼樹241
5.6.2哈夫曼樹及哈夫曼編碼的構建算法245
5.7本章小結250
5.8習題與實驗250
第6章圖/255
6.1問題的提出256
6.2圖的定義和基本術語257
6.2.1圖的定義257
6.2.2圖的基本術語257
6.2.3圖的分類258
6.2.4圖的抽象數據類型定義260
6.3圖的存儲結構262
6.3.1圖的鄰接矩陣表示262
6.3.2圖的鄰接表表示266
6.3.3有向圖的十字鍊表表示270
6.3.4無向圖的鄰接多重表表示271
6.4圖的遍歷273
6.4.1連通圖的深度優先搜尋273
6.4.2連通圖的廣度優先搜尋277
6.4.3非連通圖的深度(廣度)優先遍歷279
6.4.4圖的遍歷算法套用279
6.5圖的連通性286
6.5.1無向圖的連通分量和生成樹286
6.5.2求最小生成樹的普里姆算法287
6.5.3求最小生成樹的克魯斯卡爾算法293
6.6最短路徑298
6.6.1求圖中從某個源點到其餘各點的最短路徑算法298
6.6.2求圖中每一對頂點之間的最短路徑算法307
6.7有向無環圖及其套用312
6.7.1AOV網路及拓撲排序313
6.7.2AOE網路及關鍵路徑316
6.8本章小結323
6.9習題與實驗324
第7章查找表/330
7.1問題的提出330
7.2基本概念與描述331
7.2.1查找的基本概念331
7.2.2查找性能分析332
7.2.3數據類型描述332
7.3線性表查找333
7.3.1順序查找333
7.3.2二分查找335
7.3.3分塊查找339
7.3.4案例實現: 學生信息表查詢341
7.4樹表查找345
7.4.1二叉排序樹345
7.4.2平衡二叉樹354
7.4.3B樹和B+樹371
7.4.4案例實現: 基於二叉排序樹的學生信息管理380
7.5哈希表385
7.5.1哈希表的概念385
7.5.2常用的哈希函式386
7.5.3處理衝突的方法389
7.5.4哈希表的查找及其性能分析393
7.6本章小結394
7.7習題與實驗395
第8章排序/398
8.1問題的提出398
8.2基本概念399
8.3插入排序400
8.3.1直接插入排序401
8.3.2折半插入排序403
8.3.3希爾排序404
8.4交換排序405
8.4.1冒泡排序406
8.4.2快速排序407
8.5選擇排序410
8.5.1簡單選擇排序410
8.5.2堆排序411
8.6歸併排序416
8.7基數排序418
8.7.1多關鍵字排序418
8.7.2鏈式基數排序419
8.8案例實現: 學生成績排序系統422
8.9各種內部排序方法的性能比較427
8.10本章小結428
8.11習題與實驗428
附錄A擴展思維/430
A.1人體格線模型的表示430
A.2圖像分割431
A.2.1圖像的表示431
A.2.2區域劃分原理432
A.3仿真路網建模433
A.3.1路網定義及建模433
A.3.2路網建模結果435
A.4路徑規劃435
A.5購物推薦436
參考文獻/438

相關詞條

熱門詞條

聯絡我們