基本信息
作 者:嚴蔚敏 李冬梅 吳偉民
出版時間:2011-2-1 0:00:00
字 數:398千字
責任編輯:蔣亮
頁 數:236頁
開 本:16
ISBN書號:978-7-115-23490-2
所屬分類:本科 >> 計算機類 >> 數據結構與算法
所屬叢書:21世紀高等學校計算機規劃教材——名家系列
定 價:¥28.00元
配套資源
本書包含如下可供下載的配套資源:
[ 電子教案 ] [ 習題答案 ] [ 勘誤文檔 ] [ 教學大綱 ] [ 案例代碼 ]
編輯推薦
精選內容,貼近普通高校課程現狀
順應發展,符合最新考研大綱要求
類C描述,培養算法設計套用能力
內容提要
本書在選材與編排上,貼近當前普通高等院校“數據結構”課程的現狀和發展趨勢,符合最新研究生考試大綱,內容難度適度,突出實用性和套用性。全書共8章,內容包括緒論,線性表,棧和佇列,串、數組和廣義表,樹和二叉樹,圖,查找和排序。全書採用類C語言作為數據結構和算法的描述語言。
本書可作為普通高等院校計算機和信息技術相關專業“數據結構”課程的教材使用,也可供從事計算機工程與套用工作的科技工作者參考。
目 錄
第1章 緒論 1
1.1 數據結構的研究內容 1
1.2 基本概念和術語 3
1.2.1 數據、數據元素、數據項和數據對象 3
1.2.2 數據結構 4
1.2.3 數據類型和抽象數據類型 6
1.3 抽象數據類型的表示與實現 7
1.4 算法和算法分析 11
1.4.1 算法的定義及特性 11
1.4.2 評價算法優劣的基本標準 11
1.4.3 算法的時間複雜度 12
1.4.4 算法的空間複雜度 14
1.5 小結 15
習題 16
第2章 線性表 18
2.1 線性表的類型定義 18
2.1.1 線性表的定義和特點 18
2.1.2 線性表的抽象數據類型定義 18
2.2 線性表的順序表示和實現 19
2.2.1 線性表的順序存儲表示 19
2.2.2 順序表中基本操作的實現 20
2.3 線性表的鏈式表示和實現 24
2.3.1 單鍊表的定義和表示 24
2.3.2 單鍊表基本操作的實現 26
2.3.3 循環鍊表 31
2.3.4 雙向鍊表 32
2.4 線性表的套用 34
2.4.1 一般線性表的合併 34
2.4.2 有序表的合併 35
2.4.3 一元多項式的表示及相加 37
2.5 小結 40
習題 41
第3章 棧和佇列 44
3.1 棧 44
3.1.1 棧的類型定義 44
3.1.2 順序棧的表示和實現 45
3.1.3 鏈棧的表示和實現 47
3.2 棧的套用 48
3.2.1 數制轉換 49
3.2.2 括弧匹配的檢驗 49
3.2.3 表達式求值 51
3.3 棧與遞歸 54
3.3.1 採用遞歸算法解決的問題 54
3.3.2 遞歸過程與遞歸工作棧 57
3.3.3 遞歸算法的效率分析 59
3.3.4 將遞歸轉換為非遞歸的方法 60
3.4 佇列 61
3.4.1 佇列的類型定義 61
3.4.2 循環佇列——佇列的順序表示和實現 62
3.4.3 鏈隊——佇列的鏈式表示和實現 65
3.5 佇列的套用 67
3.6 小結 69
習題 69
第4章 串、數組和廣義表 73
4.1 串 73
4.1.1 串的類型定義 73
4.1.2 串的存儲結構 75
4.1.3 串的模式匹配算法 76
4.2 數組 83
4.2.1 數組的類型定義 83
4.2.2 數組的順序存儲 84
4.2.3 特殊矩陣的壓縮存儲 85
4.3 廣義表 87
4.3.1 廣義表的定義 87
4.3.2 廣義表的存儲結構 88
4.4 小結 90
習題 91
第5章 樹和二叉樹 94
5.1 樹的定義和基本術語 94
5.1.1 樹的定義 94
5.1.2 樹的基本術語 96
5.2 二叉樹 97
5.2.1 二叉樹的定義 97
5.2.2 二叉樹的性質 100
5.2.3 二叉樹的存儲結構 102
5.3 遍歷二叉樹和線索二叉樹 103
5.3.1 遍歷二叉樹 103
5.3.2 線索二叉樹 109
5.4 樹和森林 114
5.4.1 樹的存儲結構 114
5.4.2 森林與二叉樹的轉換 116
5.4.3 樹和森林的遍歷 116
5.5 赫夫曼樹及其套用 117
5.5.1 赫夫曼樹的基本概念 117
5.5.2 赫夫曼樹的構造算法 118
5.5.3 赫夫曼編碼 121
5.6 小結 123
習題 123
第6章 圖 126
6.1 圖的定義和基本術語 126
6.1.1 圖的定義 126
6.1.2 圖的基本術語 128
6.2 圖的存儲結構 129
6.2.1 鄰接矩陣 130
6.2.2 鄰接表 132
6.3 圖的遍歷 135
6.3.1 深度優先搜尋 135
6.3.2 廣度優先搜尋 138
6.4 圖的套用 139
6.4.1 最小生成樹 139
6.4.2 最短路徑 144
6.4.3 拓撲排序 150
6.4.4 關鍵路徑 153
6.5 小結 158
習題 160
第7章 查找 164
7.1 查找的基本概念 164
7.2 線性表的查找 165
7.2.1 順序查找 165
7.2.2 折半查找 166
7.3 樹表的查找 169
7.3.1 二叉排序樹 170
7.3.2 平衡二叉樹 176
7.3.3 B-樹 182
7.3.4 B+樹 190
7.4 散列表的查找 192
7.4.1 散列表的基本概念 192
7.4.2 散列函式的構造方法 193
7.4.3 處理衝突的方法 195
7.4.4 散列表的查找 198
7.5 小結 201
習題 203
第8章 排序 207
8.1 基本概念和排序方法概述 207
8.1.1 排序的基本概念 207
8.1.2 排序方法的分類 208
8.1.3 待排序記錄的存儲方式 208
8.1.4 排序算法效率的評價指標 209
8.2 插入排序 209
8.2.1 直接插入排序 209
8.2.2 折半插入排序 211
8.2.3 希爾排序 212
8.3 交換排序 214
8.3.1 冒泡排序 215
8.3.2 快速排序 216
8.4 選擇排序 219
8.4.1 簡單選擇排序 219
8.4.2 堆排序 221
8.5 歸併排序 226
8.6 基數排序 228
8.6.1 多關鍵字的排序 228
8.6.2 鏈式基數排序 228
8.7 小結 232
習題 233