數據結構(C語言描述)(慕課版)

範翠香,羅作民

  • 出版商: 電子工業
  • 出版日期: 2021-07-01
  • 定價: $288
  • 售價: 8.5$245
  • 語言: 簡體中文
  • 頁數: 244
  • 裝訂: 平裝
  • ISBN: 7121415356
  • ISBN-13: 9787121415357
  • 相關分類: C 程式語言
  • 下單後立即進貨 (約4週~6週)

商品描述

本書是中國大學MOOC(慕課)愛課程平臺、智慧樹平臺上由西安理工大學建設的數據結構課程的配套使用教材。為配合線上慕課的實施,本書以慕課教學推進次序為主線,將知識劃分為小知識點,並配有相應的教學視頻(掃描二維碼觀看)。本書共8章。第1章介紹數據結構的基本概念,以及算法與評價;第2章介紹線性表的概念,以及兩種存儲方式(順序存儲和鏈式存儲)下的運算實現;第3章介紹棧、隊列的特點,以及不同存儲方式下運算的實現;第4章介紹特殊矩陣、稀疏矩陣的壓縮存儲,廣義表的概念與存儲,以及串的基礎知識和模式匹配算法;第5章介紹樹與二叉樹的概念、存儲、運算與實現,以及哈夫曼編碼;第6章介紹圖的概念、存儲、運算與實現,以及幾個圖的經典應用;第7章介紹常用的幾個靜態和動態查找算法;第8章介紹常用的幾類排序算法及其性能比較。本書可用於線上、線上線下混合及線下等多種教學模式,適合作為本科、高職高專電腦相關專業教材,也可供對數據結構有興趣的初學者線上或線下學習使用。

作者簡介

範翠香,女,山西永濟人,西安理工大學計算機科學與工程學院教授。
從事計算機軟件方向教學與科研工作30多年。
承擔C/C++程序設計、數據結構、數值分析、數據庫原理與應用等多門課程的理論教學,承但8門課程的實踐教學。
年均工作量600餘課時。主持或參與科研項目10餘項,主持或參與院級或校級教學研究項目10餘項。公開出版教材4部,發表論文10餘篇。

目錄大綱

目 錄
第1章 緒論 1
1.1 數據結構的概念 1
1.1.1 數據結構的研究方向 1
1.1.2 數據結構的基本術語 3
1.1.3 數據類型與抽像數據類型 5
1.2 算法與算法分析 5
1.2.1 算法的概念與描述 5
1.2.2 算法分析 8
1.3 本章小結 12
習題1 12

第2章 線性表 15
2.1 線性表的概念 15
2.1.1 線性表的定義與特點 15
2.1.2 線性表的基本運算 16
2.1.3 線性表的抽像數據類型定義 16
2.2 線性表的順序存儲 17
2.2.1 線性表的順序存儲及其特點 17
2.2.2 順序表基本運算的實現 17
2.2.3 線性表的順序存儲優缺點 20
2.3 線性表的鍊式存儲 21
2.3.1 線性表的鍊式存儲及其特點 21
2.3.2 單鍊錶的建立 23
2.3.3 單鍊錶插入和刪除運算的實現 26
2.3.4 單向循環鍊錶 29
2.3.5 雙向鍊錶及其運算 31
2.3.6 靜態鍊錶 34
2.3.7 線性錶鍊式存儲的優缺點 35
2.4 線性表的應用 36
2.4.1 線性表存儲結構的選擇 36
2.4.2 線性表的應用舉例 36
2.5 本章小結 39
習題2 39

第3章 棧和隊列 42
3.1 棧的定義與基本運算 42
3.2 棧的存儲與運算實現 43
3.2.1 順序棧及其運算實現 43
3.2.2 鏈棧及其運算實現 45
3.2.3 棧的應用―括號匹配 47
3.3 隊列的定義與基本運算 49
3.4 隊列的存儲與運算實現 49
3.4.1 順序隊列及其運算實現 49
3.4.2 假溢出與循環隊列 51
3.4.3 鏈隊列及其運算實現 52
3.5 棧和隊列的綜合應用 54
3.5.1 棧的綜合應用 54
3.5.2 隊列的綜合應用 58
3.6 本章小結 59
習題3 60

第4章 數組、廣義表與串 63
4.1 數組的概念與存儲 63
4.1.1 數組的概念 63
4.1.2 數組的存儲 64
4.1.3 特殊矩陣的壓縮存儲 65
4.1.4 稀疏矩陣的壓縮存儲 66
4.2 廣義表 69
4.2.1 廣義表的概念與術語 69
4.2.2 廣義表的運算 69
4.2.3 廣義表的存儲 70
4.3 串的定義與存儲 71
4.3.1 串的定義 71
4.3.2 串的存儲 71
4.3.3 串的常見運算 73
4.4 串的模式匹配 74
4.4.1 串的模式匹配BF算法 74
4.4.2 串的模式匹配KMP算法 75
4.5 數組的應用舉例 80
4.6 串的應用舉例 82
4.7 本章小結 83
習題4 84

第5章 樹與二叉樹 86
5.1 樹的基本概念與性質 86
5.1.1 樹的定義與術語 86
5.1.2 樹的表示與基本運算 87
5.2 二叉樹的概念與存儲 88
5.2.1 二叉樹的定義及基本運算 88
5.2.2 二叉樹的性質 90
5.2.3 二叉樹的存儲 91
5.2.4 二叉樹的建立 93
5.3 二叉樹性質應用舉例 95
5.4 二叉樹的遍歷 96
5.4.1 二叉樹遍歷的概念與思想 96
5.4.2 二叉樹遍歷的遞歸算法 97
5.4.3 二叉樹的層次遍歷 98
5.4.4 二叉樹的非遞歸遍歷 99
5.5 線索二叉樹 102
5.5.1 二叉樹的線索化 103
5.5.2 遍歷線索二叉樹 105
5.6 樹與森林 108
5.6.1 樹的存儲 108
5.6.2 樹及森林與二叉樹的轉換 111
5.6.3 樹與森林的遍歷 113
5.7 哈夫曼樹與哈夫曼編碼 114
5.7.1 哈夫曼編碼概述 114
5.7.2 哈夫曼樹與哈夫曼編碼的實現 115
5.8 樹與二叉樹的應用舉例 120
5.9 本章小結 122
習題5 123

第6章 圖 126
6.1 圖的概念與性質 126
6.1.1 圖的定義 126
6.1.2 圖的有關術語 127
6.1.3 圖的基本運算 130
6.2 圖的存儲 131
6.2.1 圖的鄰接矩陣存儲 131
6.2.2 圖的鄰接表存儲 134
6.2.3 圖的十字鍊錶存儲與鄰接多重表存儲 136
6.3 圖的遍歷 137
6.3.1 圖的深度優先遍歷 138
6.3.2 圖的廣度優先遍歷 141
6.4 最小生成樹 146
6.4.1 Prim算法構造最小生成樹 147
6.4.2 Kruskal算法構造最小生成樹 149
6.5 最短路徑 152
6.5.1 單源最短路徑―Dijkstra算法 153
6.5.2 任意兩個頂點間最短路徑―Floyd算法 157
6.6 拓撲序列 160
6.6.1 拓撲序列的概念 161
6.6.2 拓撲序列的構造 162
6.6.3 拓撲序列的應用舉例 164
6.7 關鍵路徑 164
6.7.1 關鍵路徑的概念 165
6.7.2 關鍵路徑的構造 166
6.7.3 關鍵路徑的應用舉例 167
6.8 圖的綜合應用舉例 169
6.9 本章小結 171
習題6 172

第7章 查找 176
7.1 查找的基本概念 176
7.1.1 查找的定義與分類 176
7.1.2 查找算法的性能評價 177
7.2 基於線性表的查找 178
7.2.1 順序查找 178
7.2.2 折半查找 179
7.2.3 分塊查找 181
7.3 基於樹表的查找 182
7.3.1 二叉排序樹 183
7.3.2 平衡二叉排序樹 187
7.3.3 B-樹 191
7.3.4 B+樹 195
7.4 基於哈希表的查找 196
7.4.1 哈希查找的基本思想 196
7.4.2 哈希函數的構造 197
7.4.3 常見衝突處理方法 198
7.4.4 哈希表的基本運算 200
7.5 查找算法的應用舉例 203
7.6 本章小結 204
習題7 205

第8章 排序 207
8.1 排序的基本概念 207
8.1.1 排序的定義及分類 207
8.1.2 排序算法的性能評價指標 208
8.2 插入排序 209
8.2.1 直接插入排序 209
8.2.2 折半插入排序 211
8.2.3 希爾排序 212
8.3 交換排序 214
8.3.1 冒泡排序 214
8.3.2 快速排序 216
8.4 選擇排序 219
8.4.1 簡單選擇排序 219
8.4.2 堆排序 220
8.5 歸併排序 224
8.6 多關鍵字排序 226
8.6.1 多關鍵字排序的基本概念 226
8.6.2 基數排序 227
8.7 排序算法的應用舉例 230
8.8 本章小結 231
習題8 233

參考資料 236