數據結構與算法(C語言版)

數據結構與算法(C語言版)

《數據結構與算法(C語言版)》是2012年中國鐵道出版社出版的一本圖書,作者是陳明。本書為高等院校計算機及相關專業“數據結構”課程的教學用書,系統地介紹了各種典型的數據結構。

基本介紹

  • 書名:數據結構與算法(C語言版)
  • 作者:陳明
  • ISBN:7-113-13665
  • 定價:32.00元
  • 出版社:中國鐵道出版社
  • 出版時間:2012年1月
內容簡介,圖書目錄,

內容簡介

內容包括:數據結構概論、線性表、棧與佇列、串、數組、樹、圖、查找、排序、遞歸、檔案等;為了加強對算法的理解,還介紹了算法分析方面的內容。
本書語言與選材精練、概念清晰、注重實用、邏輯性強,對於各章節中所涉及的數據結構與算法都給出了C語言描述,並都附有大量的習題,便於學生理解與掌握。
本書適合作為高等院校計算機及相關專業的教材,也可作為計算機套用技術人員的參考書。

圖書目錄

第1章 數據結構概論 1
1.1 問題的提出 2
1.2 基本概念與術語 3
1.3 數據結構的概念 5
1.4 數據的邏輯結構、存儲結構及運算 7
1.4.1 數據的邏輯結構 7
1.4.2 數據的存儲結構 8
1.4.3 數據的運算 9
1.4.4 邏輯結構、存儲結構及運算的關係 10
1.5 算法與算法特性 10
1.5.1 算法及其特性 10
1.5.2 算法的描述方法 11
1.5.3 算法與程式及數據結構 11
1.6 算法性能分析及算法度量 12
1.6.1 算法性能分析 12
1.6.2 算法度量 12
小結 15
習題 15
拓展實驗:電話號碼的查詢 16
第2章 線性表 17
2.1 線性表的定義與運算 18
2.1.1 線性表的定義 18
2.1.2 線性表的抽象數據類型 18
2.2 線性表的順序存儲 19
2.2.1 順序存儲 19
2.2.2 順序表的運算 21
2.3 線性表的鏈式存儲 24
2.3.1 線性鍊表及運算 24
2.3.2 靜態鍊表及運算 31
2.3.3 循環鍊表及運算 32
2.3.4 雙向鍊表及運算 34
2.4 線性表的套用 36
2.4.1 約瑟夫問題 37
2.4.2 一元多項式求和問題 38
2.4.3 集合套用問題 41
小結 43
習題 43
拓展實驗:線性表的合併 44
第3章 棧與佇列 46
3.1 棧 47
3.1.1 棧的定義 47
3.1.2 棧的順序存儲結構 48
3.1.3 棧的鏈式存儲結構 50
3.2 棧的套用 52
3.2.1 子程式的調用和返回問題 52
3.2.2 數制轉換問題 52
3.3 佇列 53
3.3.1 佇列的定義 53
3.3.2 佇列的順序存儲結構 54
3.3.3 佇列的鏈式存儲結構 60
3.4 佇列的套用 64
3.4.1 設備速度不匹配問題 64
3.4.2 舞伴問題 65
小結 66
習題 66
拓展實驗:算術表達式求值 67
第4章 串 68
4.1 串的基本概念 69
4.2 串的存儲結構 70
4.2.1 串的靜態存儲結構 70
4.2.2 串的動態存儲結構 71
4.3 串的基本運算 73
4.3.1 串的抽象數據類型定義 73
4.3.2 串的基本運算實現 74
4.4 模式匹配 78
4.4.1 BF算法 78
4.4.2 KMP算法 80
4.5 串的套用 84
小結 85
習題 85
拓展實驗:設計簡單的文本編輯器 86
第5章 數組 87
5.1 數組及其基本操作 87
5.1.1 數組的概念 88
5.1.2 抽象數據類型數組的定義 89
5.2 數組的存儲結構 90
5.3 數組在矩陣運算中的套用 93
5.3.1 特殊矩陣的壓縮存儲 93
5.3.2 稀疏矩陣的壓縮存儲 94
小結 102
習題 102
拓展實驗:一元多項式的值計算 103
第6章 樹 104
6.1 樹的概念 105
6.1.1 樹的定義 105
6.1.2 樹的表示方法 106
6.1.3 樹的基本術語 106
6.1.4 樹的ADT定義 107
6.2 二叉樹 107
6.2.1 二叉樹的定義及基本結構 108
6.2.2 二叉樹的存儲結構 109
6.2.3 二叉樹的遍歷 112
6.3 線索二叉樹 115
6.3.1 二叉樹的線索化 115
6.3.2 利用線索遍歷 116
6.4 樹、森林、二叉樹之間的關係 120
6.4.1 樹的存儲結構 121
6.4.2 森林與二叉樹的轉換 124
6.4.3 樹和森林的遍歷 127
6.5 哈夫曼算法及其套用 128
6.5.1 哈夫曼樹的定義 128
6.5.2 哈夫曼二叉樹的構造 129
6.5.3 哈夫曼樹在編碼問題中的套用 131
小結 135
習題 135
拓展實驗:創建二叉樹 138
第7章 圖 139
7.1 圖的概念與ADT定義 140
7.1.1 圖的概念 140
7.1.2 圖的抽象數據類型定義 144
7.2 圖的存儲結構 144
7.2.1 鄰接矩陣 145
7.2.2 鄰接表 147
7.2.3 十字鍊表 150
7.2.4 鄰接多重表 152
7.3 圖的遍歷 153
7.3.1 深度優先搜尋 153
7.3.2 廣度優先搜尋 155
7.4 圖的套用 157
7.4.1 生成樹 157
7.4.2 最短路徑 162
7.4.3 拓撲排序 166
7.4.4 關鍵路徑 170
小結 176
習題 176
拓展實驗:圖的深度優先搜尋 179
第8章 查找 180
8.1 查找的基本概念 181
8.2 靜態查找問題 182
8.2.1 順序查找 182
8.2.2 二分查找 182
8.3 線性表的查找方法 184
8.3.1 線性查找 184
8.3.2 折半查找 185
8.3.3 分塊查找 188
8.4 樹表的查找方法 190
8.4.1 二叉查找樹 190
8.4.2 平衡二叉樹 196
8.4.3 B-樹 202
8.5 哈希表的查找方法 203
8.5.1 哈希表 203
8.5.2 構造哈希表的基本方法 205
8.5.3 解決衝突的方法 206
8.5.4 哈希表的查找方法 209
8.6 各種查找方法的比較 210
小結 210
習題 210
拓展實驗:折半查找 212
第9章 排序 213
9.1 排序的基本概念 214
9.2 內部排序 216
9.2.1 插入排序 216
9.2.2 冒泡排序 220
9.2.3 快速排序 221
9.2.4 選擇排序 223
9.2.5 歸併排序 229
9.2.6 基數排序 231
9.3 內部排序方法比較 234
9.4 內部排序方法的選擇 235
9.5 外部排序簡介 236
小結 236
習題 236
拓展實驗:希爾排序 238
第10章 遞歸 239
10.1 遞歸的定義與類型 240
10.1.1 遞歸的定義 240
10.1.2 遞歸的類型 240
10.2 遞歸套用舉例 240
10.2.1 漢諾塔問題 240
10.2.2 八皇后問題 243
10.3 遞歸的實現 244
10.4 遞歸到非遞歸的轉換過程 247
10.5 遞歸的時間和空間複雜度 250
小結 251
習題 251
拓展實驗:漢諾塔問題研究 252
第11章 檔案 253
11.1 外存儲器簡介 254
11.2 有關檔案的概念 255
11.2.1 檔案及其類別 255
11.2.2 檔案的操作 256
11.3 檔案的組織 258
11.3.1 順序檔案 258
11.3.2 索引檔案 259
11.3.3 散列檔案 264
11.3.4 多關鍵字檔案 265
小結 267
習題 267
拓展實驗:索引檔案 268
參考文獻 269

相關詞條

熱門詞條

聯絡我們