《數據結構(C語言版)(第二版)》是2021年清華大學出版社出版的圖書,作者是梁海英、李淑梅、劉艷玲、羅琳、趙方珍、羅蘭花。
基本介紹
- 中文名:數據結構(C語言版)(第二版)
- 作者:梁海英、李淑梅、劉艷玲、羅琳、趙方珍、羅蘭花
- 出版社:清華大學出版社
- 出版時間:2021年4月1日
- 定價:69 元
- ISBN:9787302573975
內容簡介,圖書目錄,
內容簡介
《數據結構(C 語言版) (第二版) 》基於作者多年的教學經驗,從實用的角度出發,對線性和非線性數據結構的順序和鏈式存儲及其操作進行了詳細講解,在教給學生數據結構設計和算法設計的同時,培養學生分析問題、解決問題和總結問題的能力。書中的每一章均配有實戰練習及大量習題,實現了理論與實踐相結合,讓學生學以致用。《數據結構(C 語言版) (第二版) 》免費提供電子課件、原始碼及習題答案,全部案例均已在Visual C++ 6.0環境中成功運行。
《數據結構(C 語言版) (第二版) 》既可作為普通高校計算機類專業和電子信息類相關專業的教材,也可作為計算機類專業考取碩士研究生或博士研究生的參考教材。
圖書目錄
第1章 緒論 1
1.1 數據結構概述 1
1.2 常用術語和基本概念 3
1.3 數據類型 6
1.4 算法和算法複雜度 6
1.4.1 算法的重要性 7
1.4.2 時間複雜度 8
1.4.3 空間複雜度 10
1.5 本章實戰練習 11
1.6 本章小結 13
1.7 習題1 13
第2章 線性表 17
2.1 線性表概述 17
2.2 線性表的順序存儲及運算的實現 18
2.2.1 線性表的順序存儲 18
2.2.2 順序表的基本操作 19
2.3 線性表的鏈式存儲及運算的實現 24
2.3.1 單鍊表 24
2.3.2 循環鍊表 33
2.3.3 雙向鍊表 34
2.4 本章實戰練習 37
2.4.1 順序表的常用操作 37
2.4.2 單鍊表的常用操作 40
2.4.3 通訊錄管理 42
2.5 本章小結 47
2.6 習題2 49
第3章 棧和佇列 55
3.1 棧 55
3.1.1 棧的定義 55
3.1.2 棧的順序存儲與操作 56
3.1.3 棧的鏈式存儲與操作 60
3.2 佇列 61
3.2.1 佇列的定義 61
3.2.2 佇列的順序存儲與操作 62
3.2.3 佇列的鏈式存儲與操作 65
3.3 本章實戰練習 67
3.3.1 top為指針且指向棧頂元素的下一個位置 67
3.3.2 top為整數且指向棧頂元素的當前位置 70
3.3.3 棧的套用——數制轉換 71
3.3.4 順序佇列的基本操作 73
3.3.5 循環佇列設定不同隊空與隊滿條件的解決方案 75
3.3.6 鏈佇列的基本操作 77
3.4 本章小結 80
3.5 習題3 81
第4章 特殊矩陣和廣義表 87
4.1 特殊矩陣及其壓縮存儲 87
4.1.1 特殊矩陣的壓縮存儲 88
4.1.2 稀疏矩陣及其壓縮存儲 90
4.2 廣義表 93
4.2.1 廣義表的定義 93
4.2.2 廣義表的存儲結構及實現 93
4.3 本章實戰練習 95
4.4 本章小結 98
4.5 習題4 99
第5章 樹 101
5.1 樹的概念 101
5.1.1 樹的定義 101
5.1.2 樹的基本術語 102
5.2 二叉樹 104
5.2.1 二叉樹的定義 104
5.2.2 二叉樹的性質 106
5.3 二叉樹的存儲結構 108
5.3.1 二叉樹的順序存儲 108
5.3.2 二叉樹的鏈式存儲與操作 109
5.4 二叉樹的遍歷 111
5.4.1 遍歷算法 111
5.4.2 線索二叉樹 115
5.5 樹與森林 118
5.5.1 樹和森林的存儲 118
5.5.2 二叉樹、樹和森林的轉換 122
5.5.3 樹和森林的遍歷 123
5.6 哈夫曼樹 123
5.6.1 哈夫曼樹的定義 124
5.6.2 哈夫曼樹的存儲定義 124
5.6.3 哈夫曼樹的構造算法 124
5.6.4 哈夫曼編碼 126
5.7 本章實戰練習 127
5.7.1 二叉樹的基本操作 127
5.7.2 線索二叉樹的操作 132
5.7.3 哈夫曼樹的構造 136
5.8 本章小結 137
5.9 習題5 137
第6章 圖 147
6.1 圖的定義和基本術語 147
6.1.1 圖的定義 147
6.1.2 圖的基本術語 148
6.2 圖的存儲與操作 151
6.2.1 鄰接矩陣 151
6.2.2 鄰接表 154
6.3 圖的遍歷 157
6.3.1 深度優先遍歷算法 158
6.3.2 廣度優先遍歷算法 159
6.4 圖與最小生成樹 162
6.4.1 生成樹和森林的概念 162
6.4.2 最小生成樹 163
6.5 最短路徑 167
6.5.1 單源點到其餘各頂點的最短路徑 167
6.5.2 任意源點之間的最短路徑 170
6.6 AOV網與拓撲排序 170
6.6.1 AOV網 170
6.6.2 拓撲排序 171
6.7 AOE網與關鍵路徑 172
6.7.1 AOE網 172
6.7.2 關鍵路徑 173
6.8 本章實戰練習 176
6.8.1 圖的鄰接矩陣操作 176
6.8.2 圖的鄰接表操作 180
6.8.3 利用鄰接矩陣實現連通圖的深度優先遍歷 184
6.8.4 利用鄰接表實現連通圖的深度優先遍歷 186
6.8.5 利用鄰接矩陣實現連通圖的廣度優先遍歷 188
6.8.6 利用鄰接表實現連通圖的廣度優先遍歷 191
6.8.7 普里姆最小生成樹算法 194
6.8.8 迪傑斯特拉最短路徑算法 196
6.9 本章小結 199
6.10 習題6 199
第7章 查找 209
7.1 查找的基本概念 209
7.2 靜態查找算法 211
7.2.1 順序查找 211
7.2.2 折半查找 213
7.3 動態查找表 216
7.4 哈希表 219
7.4.1 哈希表的定義 219
7.4.2 哈希函式的構造 220
7.4.3 處理衝突的方法 221
7.4.4 哈希表的查找和性能 223
7.5 本章實戰練習 224
7.5.1 順序查找算法 224
7.5.2 折半查找算法 225
7.5.3 二叉排序樹查找算法 226
7.6 本章小結 228
7.7 習題7 228
第8章 排序 233
8.1 排序的基本概念 233
8.2 插入排序算法 234
8.2.1 直接插入排序 234
8.2.2 折半插入排序 236
8.2.3 希爾排序 237
8.3 交換排序算法 238
8.3.1 冒泡排序 238
8.3.2 快速排序 239
8.4 選擇排序算法 241
8.4.1 直接選擇排序 242
8.4.2 堆排序 243
8.5 歸併排序算法 245
8.6 排序算法的比較 247
8.7 本章實戰練習 248
8.8 本章小結 253
8.9 習題8 253
參考文獻 257