數據結構

2011年胡學鋼、張晶所著書籍

《數據結構(C++描述)》是2011年人民郵電出版社出版的圖書,作者是胡學鋼,張晶。

內容簡介


數據結構是計算機科學與技術、網路工程、軟體工程、信息安全等專業的重要基礎課,是這些專業的核心課程之一,是一門集技術性、理論性和實踐性於一體的課程。《數據結構(C++描述)》重點介紹抽象數據類型、基本數據結構、演演算法性能評價、c++語言描述數據結構、數據結構的應用等內容,進一步使讀者理解數據抽象與面向對象編程實現的關係,提高使用計算機解決實際問題的能力。
《數據結構(C++描述)》內容包括基本數據類型、抽象數據類型、演演算法效率分析、順序表、鏈表、樹和二叉樹、圖、多維數組等內容。《數據結構(C++描述)》結構合理,內容豐富,演演算法理論分析詳細,數據結構的演演算法描述豐富,用c++語言編寫的演演算法代碼都已調試通過,便於自學。可作為高等院校計算機科學與技術、網路工程、軟體工程、信息安全等專業、軍事院校的基礎合訓專業和其他相關專業的教材和參考書,也可供從事計算機軟體開發的科技工作者參考。
“數據結構”是計算機類各專業重要的專業基礎課程,是提高軟體設計水平以及學習後續課程所必需的基礎。課程中涉及軟體設計中常見的幾種數據結構及其在計算機內存中的表示(即存儲)形式和各種操作的實現,以及軟體設計中常用的排序和查找運算。
本書共11章,內容包括概述、順序棧、順序隊列、鏈棧和鏈隊列、線性表、數組和廣義表、遞歸技術、樹和二叉樹、圖、查找、排序等內容,並配有相關的習題。全書內容安排由易到難,逐步深化,便於學習;內容組織上,以特定的知識框架組織知識,便於學生的學習、複習和主動學習;針對難度較大的章節,以模塊化方法分解和組織教材內容,降低學習難度;以豐富的例題討論來加強演演算法和程序設計的分析,引導和加深學生對技術的理解;以通俗的語言講解內容,便於學生的理解。全部內容安排避免了概念和理論的平鋪直述,因而容易激發學生的學習興趣,具有較好的學習效果。
本書是工程、應用型計算機類相關專業的“數據結構”課程教材,也可作為其他專業學生學習“數據結構”課程的教材或參考書。

基本信息


書 名 數據結構(C++描述)(國家精品課程配套教材)
叢 書 名 21世紀高等學校計算機規劃教材——精品系列
標準書號 ISBN 978-7-115-25078-0
編目分類 TP311.12 TP312
作 者 胡學鋼 張晶 主編
責任編輯 鄒文波
開 本 16 開
印 張 14
字 數 366 千字
頁 數 216 頁
裝 幀 平裝
版 次 第1版第1次
初版時間 2011年8月
本 印 次 2011年8月
定 價 29.00 元

目錄


第1章 概論 1
1.1 數據結構課程的研究內容 1
1.1.1 從幾個程序設計問題的討論開始 1
1.1.2 用計算機解決實際問題的過程 5
1.1.3 學習數據結構課程的意義 8
1.2 基本術語 9
1.3 演演算法描述及分析 10
1.3.1 演演算法描述語言概述 10
1.3.2 演演算法分析 11
本章小結 12
習題 13
第2章 棧 14
2.1 棧的定義和運算 14
2.1.1 基本概念 14
2.1.2 棧的運算 15
2.2 順序棧 18
2.2.1 棧的順序存儲結構 18
2.2.2 順序棧的C++描述 18
2.2.3 順序棧上運算的實現 19
2.3 棧的應用實例 21
本章小結 24
習題 24
第3章 順序隊列 26
3.1 隊列的定義和運算 26
3.1.1 基本概念 26
3.1.2 隊列的運算 26
3.2 順序隊列與循環隊列 28
3.2.1 存儲結構 29
3.2.2 順序隊列中實現運算的討論 29
3.2.3 隊列的應用概述 32
本章小結 33
習題 34
第4章 鏈棧和鏈隊列 35
4.1 鏈表結構 35
4.1.1 指針與動態變數 35
4.1.2 鏈表基本結構 37
4.2 鏈棧 38
4.2.1 鏈棧的存儲結構 39
4.2.2 鏈棧的運算實現 39
4.3 鏈隊列 42
4.3.1 鏈隊列的存儲結構 42
4.3.2 鏈隊列的運算實現 43
本章小結 45
習題 45
第5章 線性表 46
5.1 線性表的定義和運算 46
5.1.1 線性表的定義 46
5.1.2 線性表的運算 47
5.2 順序表 49
5.2.1 線性表的順序存儲結構 49
5.2.2 順序表運算的實現 49
5.2.3 順序表的應用 52
5.3 鏈表 55
5.3.1 線性表的鏈表存儲結構 55
5.3.2 鏈表運算的實現 57
5.3.3 其他形式的鏈表結構 66
5.4 串 69
5.4.1 串的定義和運算 69
5.4.2 串的存儲 69
本章小結 71
習題 72
第6章 遞歸 73
6.1 引言 73
6.2 遞歸程序的定義及其一般形式 74
6.2.1 遞歸程序的定義 74
6.2.2 遞歸程序的一般形式 75
6.3 遞歸調用的內部實現原理 75
6.3.1 一般函數的內部實現 75
6.3.2 遞歸調用的內部實現原理 77
6.4 遞歸程序的閱讀 79
6.5 遞歸程序的正確性證明和編寫 81
6.5.1 遞歸程序的正確性證明 81
6.5.2 遞歸程序的編寫 83
6.6 遞歸的模擬 84
6.7 遞歸技術應用 91
本章小結 95
習題 95
第7章 數組和廣義表 99
7.1 數組 99
7.1.1 數組的定義和運算 99
7.1.2 數組的順序存儲 100
7.1.3 矩陣的壓縮存儲 101
7.2 廣義表 103
7.2.1 廣義表的基本概念 103
7.2.2 廣義表的基本運算 104
7.2.3 廣義表的存儲 105
本章小結 106
習題 106
第8章 樹 108
8.1 樹 108
8.2 二叉樹 110
8.2.1 二叉樹的基本概念 110
8.2.2 二叉樹的性質 111
8.2.3 二叉樹的存儲結構 113
8.3 二叉樹的遍歷 114
8.3.1 遍歷演演算法的實現 115
8.3.2 二叉樹遍歷演演算法的應用 119
8.4 線索二叉樹 121
8.4.1 線索二叉樹結構 121
8.4.2 線索二叉樹中前驅後繼的求解 123
8.5 樹和森林 125
8.5.1 樹的存儲結構 125
8.5.2 樹(森林)與二叉樹的轉換 128
8.5.3 樹(森林)的遍歷 130
8.6 哈夫曼樹 131
8.6.1 問題描述及求解方法 132
8.6.2 應用實例 135
本章小結 136
習題 136
第9章 圖 140
9.1 基本概念 140
9.2 圖的存儲結構 143
9.2.1 鄰接矩陣表示 143
9.2.2 鄰接表表示 144
9.3 圖的遍歷演演算法及其應用 146
9.3.1 深度優先搜索遍歷演演算法及其應用 146
9.3.2 廣度優先搜索遍歷演演算法及其應用 151
9.4 最小生成樹 154
9.4.1 Prim演演算法 155
9.4.2 Kruskal演演算法 159
9.5 有向無環圖 161
9.5.1 拓撲排序 161
9.5.2 關鍵路徑 164
9.6 最短路徑 168
9.6.1 從單個頂點到其餘各頂點之間的最短路徑 168
9.6.2 各頂點之間的最短路徑 172
本章小結 175
習題 175
第10章 查找 178
10.1 概述 178
10.2 順序表的查找 179
10.2.1 簡單順序查找 179
10.2.2 有序表的二分查找 180
10.2.3 索引順序表的查找 183
10.3 樹表的查找 183
10.3.1 二叉排序樹及其查找 184
10.3.2 平衡二叉樹 186
10.4 散列表的查找 191
10.4.1 散列表的基本概念 191
10.4.2 散列函數的構造方法 192
10.4.3 處理衝突的方法 193
10.4.4 散列表的查找 195
本章小結 195
習題 196
第11章 排序 198
11.1 概述 198
11.1.1 排序及其分類 198
11.1.2 排序演演算法的分析指標 199
11.2 插入排序 199
11.2.1 直接插入排序 199
11.2.2 希爾排序 201
11.3 交換排序 203
11.3.1 冒泡排序 203
11.3.2 快速排序 204
11.4 選擇排序 207
11.4.1 直接選擇排序 207
11.4.2 堆排序 208
11.5 歸併排序 213
11.5.1 歸併 213
11.5.2 歸併排序 213
本章小結 214
習題 215
數據結構(C++描述)
數據結構(C++描述)
書 名: 數據結構(C++ 描述)
作 者:熊岳山
出版社:清華大學出版社
ISBN: 9787302270010
出版時間: 2012年1月1日
開本: 16開
定價: 25.00元