數據結構(C語言微課版)——從概念到算法

《數據結構(C語言微課版)——從概念到算法》是2023年人民郵電出版社出版的圖書。

基本介紹

  • 中文名:數據結構(C語言微課版)——從概念到算法
  • 作者:袁凌
  • 出版時間:2023年1月1日
  • 出版社:人民郵電出版社
  • ISBN:9787115597465
內容簡介,圖書目錄,

內容簡介

數據結構是計算機及相關專業的基礎課程,具有很強的理論性和實踐性。本書採用類C語言作為數據結構和算法的描述語言,以“邏輯結構+物理結構+基本操作實現+典型套用”的模式對查找、排序、線性結構、樹結構、圖結構進行了詳細的分析和討論,條理清晰,講解全面。本書在選材與編排上,貼近當前普通高等院校“數據結構”課程的現狀和發展趨勢,符合最新研究生考試大綱,內容難度適度。全書共9章,主要內容包括緒論、線性表、棧與佇列,串、數組與廣義表,樹和二叉樹,圖,查找,排序,大數據存儲與檢索。
本書可作為普通高等院校計算機和信息技術相關專業“數據結構”課程的教材,也可供從事計算機工程與套用工作的科技工作者參考。

圖書目錄

第 1章 緒論 1
1.1 程式設計的問題背景 1
1.2 程式設計的一般過程 2
1.3 數據結構概述 3
1.4 數據結構基本概念 6
1.5 算法設計的一般步驟 9
1.5.1 算法定義及性質 9
1.5.2 算法設計步驟 12
1.6 算法複雜度分析 12
1.6.1 算法時間複雜度分析 12
1.6.2 算法空間複雜度分析 15
1.7 算法分析實例 17
1.8 本章小結 22
計算機領域名人堂 23
本章習題 23
第 2章 線性表 27
2.1 線性表的基本概念 27
2.1.1 線性表定義 28
2.2.2 抽象數據類型定義 29
2.2 線性表順序存儲結構定義及實現 32
2.2.1 順序表存儲結構定義 32
2.2.2 順序表的基本操作實現 35
2.3 線性表鏈式存儲結構定義及實現 39
2.3.1 單鍊表存儲結構定義 40
2.3.2 單鍊表的實現 40
2.3.3 循環單鍊表 44
2.3.4 雙向鍊表 46
2.4 順序表與鍊表的比較 48
2.5 線性表套用實例 49
2.5.1 遞增有序單鍊表生成算法 49
2.5.2 單鍊表插入刪除算法 53
2.5.3 單鍊表合併算法 55
2.5.4 單鍊表的逆置 57
2.6 本章小結 60
計算機領域名人堂 61
本章習題 62
第3章 棧與佇列 66
3.1 棧 67
3.1.1 棧的基本概念 67
3.1.2 棧的抽象數據類型 68
3.1.3 棧的操作特性 68
3.1.4 棧的順序存儲結構 70
3.1.5 棧的鏈式存儲結構 76
3.1.6 棧的套用 78
3.2 佇列 86
3.2.1 佇列的基本概念 87
3.2.2 佇列的抽象數據類型 87
3.2.3 鏈式佇列的基本運算及實現 88
3.2.4 順序佇列的基本運算及實現 91
3.3 套用實例 96
3.3.1 棧的套用實例 96
3.3.2 佇列的套用實例 99
3.4 本章小結 102
計算機領域名人堂 103
本章習題 103
第4章 字元串、多維數組與廣義表 108
4.1 字元串 108
4.1.1 字元串的定義 109
4.1.2 字元串的存儲結構及其基本運算的實現 111
4.1.3 字元串的模式匹配算法 116
4.2 多維數組 122
4.2.1 多維數組概念的引入 122
4.2.2 多維數組的順序存儲 124
4.2.3 矩陣的壓縮存儲 128
4.3 廣義表 137
4.3.1 廣義表的定義 137
4.3.2 廣義表的存儲 139
4.4 套用實例 143
4.4.1最大匹配分詞算法 143
4.4.2正數值三角形的最優路徑 147
4.5 本章小結 149
計算機領域名人堂 149
本章習題 150
第5章 樹與二叉樹 153
5.1 實際套用中的樹 153
5.2樹的邏輯結構 155
5.2.1 樹的定義與基本術語 155
5.2.2 樹的抽象數據類型定義 157
5.3 樹的存儲結構 158
5.3.1 雙親表示法 159
5.3.2 孩子表示法 159
5.3.3 孩子兄弟表示法 161
5.4 二叉樹的邏輯結構 162
5.4.1 二叉樹的定義 163
5.4.2 二叉樹的性質 163
5.4.3 二叉樹的操作與抽象數據類型定義 166
5.5 二叉樹的存儲結構 168
5.5.1 二叉樹的順序存儲結構 168
5.5.2 二叉樹的鏈式存儲結構 169
5.5.3 基於二叉鍊表的二叉樹遍歷 170
5.5.4 線索鍊表與線索二叉樹 179
5.6 樹、森林與二叉樹的轉換 185
5.6.1 樹與二叉樹的轉換 185
5.6.2 森林與二叉樹的轉換 186
5.6.3 樹與森林的遍歷 187
5.7 哈夫曼樹 189
5.7.1 哈夫曼樹與哈夫曼算法 189
5.7.2 哈夫曼編碼 192
5.8 套用實例:表達式二叉樹 193
5.8.1 表達式二叉樹的概念 194
5.8.2 表達式二叉樹的實現 194
5.9本章小結 197
計算機領域名人堂 197
本章習題 198
第6章 圖 203
6.1 實際套用中的圖 203
6.2 圖的基本概念 204
6.2.1 圖的定義和基本術語 204
6.2.2 圖的操作定義 207
6.3 圖的存儲結構 208
6.3.1 鄰接矩陣 208
6.3.2 鄰接表 211
6.3.3 十字鍊表 213
6.3.4 鄰接多重表 214
6.4 圖的遍歷 215
6.4.1 圖的深度優先搜尋遍歷 215
6.4.2 圖的廣度優先搜尋遍歷 217
6.4.3 圖的連通性 218
6.5 圖的生成樹問題 219
6.5.1 生成樹與最小生成樹 219
6.5.2 最小生成樹Prim算法 220
6.5.3 最小生成樹Kruskal算法 223
6.6 圖的最短路徑問題 226
6.6.1 單源最短路徑Dijkstra算法 226
6.6.2 各頂點間最短路徑Floyd算法 230
6.7 有向無環圖的套用 233
6.7.1 拓撲排序 233
6.7.2 關鍵路徑 236
6.8 套用實例 241
6.8.1 並查集 241
6.8.2 捷運換乘問題 245
6.9 本章小結 258
計算機領域名人堂 258
本章習題 259
第7章 排序 263
7.1 實際套用中的排序 263
7.2 排序的概述 264
7.2.1 排序算法的穩定性 265
7.2.2 排序算法的分類 266
7.2.3 排序算法的性能 266
7.3 插入排序 266
7.3.1 直接插入排序 266
7.3.2 折半插入排序 269
7.3.3 希爾排序 271
7.4 交換排序 274
7.4.1 冒泡排序 274
7.4.2 快速排序 277
7.5 選擇排序 281
7.5.1 簡單選擇排序 281
7.5.2 樹形選擇排序 284
7.6 歸併排序 291
7.7 分配排序 295
7.7.1 桶排序 295
7.7.2 基數排序 296
7.8 各種排序技術比較 299
7.9 本章小結 300
計算機領域名人堂 301
本章習題 302
第8章 查找 308
8.1 查找概述 308
8.1.1 查找基本概念 308
8.1.2 查找操作性能分析 309
8.2 線性表的查找技術 309
8.2.1 順序查找 309
8.2.2 折半查找 312
8.2.3 索引查找 315
8.3 樹表的查找技術 316
8.3.1 二叉排序樹 316
8.3.2 平衡二叉樹 325
8.3.3 紅黑樹 331
8.3.4 B樹 346
8.4 散列表的查找技術 350
8.4.1 散列表概述 350
8.4.2 散列函式設計 351
8.4.3 處理衝突的方法 352
8.4.4 散列查找性能分析 355
8.5 本章小結 357
計算機領域名人堂 358
本章習題 359
第9章 大數據存儲與檢索 364
9.1 大數據的定義與特徵 364
9.1.1 大數據定義 365
9.1.2 大數據特徵 365
9.1.3 大數據的行業發展趨勢 367
9.2 大數據存儲 367
9.2.1 數據存儲管理 368
9.2.2 分散式檔案系統 368
9.2.3 NoSQL資料庫 371
9.2.4 HBase資料庫 372
9.3 大數據檢索 375
9.3.1 大數據索引 375
9.3.2 大數據高效檢索 377
9.4 套用實例 378
9.5 本章小結 382
計算機領域名人堂 383
本章習題 383

相關詞條

熱門詞條

聯絡我們