數據結構(Java版)(第4版)

數據結構(Java版)(第4版)

《數據結構(Java版)(第4版)》是2015年7月電子工業出版社出版的圖書,作者是葉核亞。

基本介紹

  • 中文名:數據結構(Java版)(第4版)
  • 作者:葉核亞
  • 出版社:電子工業出版社
  • 出版時間:2015年7月
  • 頁數:340 頁
  • 定價:45 元
  • 開本:16 開
  • ISBN:9787121261886
內容簡介,圖書目錄,

內容簡介

本書是“十二五”普通高等教育本科國家級規劃教材。
本書全面系統地介紹數據結構的基礎理論和算法設計方法,包括線性表、樹、圖等數據結構以及查找和排序算法。本書採用Java語言以面向對象方法設計並實現了全部的數據結構及算法。本書精選基礎理論內容,重點是數據結構設計和算法設計,通過降低理論難度和抽象性、加強實踐環節等措施,力求增強學生的理解能力和套用能力。本書內容涉及的廣度和深度符合本科培養目標的要求,配套教學資源豐富。
本書可作為普通高等學校計算機及相近專業本科的數據結構課程教材,也可作為從事計算機軟體開發和工程套用人員的參考書。

圖書目錄

目 錄
第1章 緒論 1
1.1 數據結構的基本概念 1
1.1.1 為什麼要學習數據結構 1
1.1.2 什麼是數據結構 1
1.1.3 數據類型與抽象數據類型 5
1.2 算法 8
1.2.1 什麼是算法 8
1.2.2 算法分析 9
1.2.3 算法設計 12
習題1 15
實驗1 算法設計與分析 16
第2章 線性表 17
2.1 線性表抽象數據類型 17
2.2 線性表的順序存儲和實現 18
2.2.1 線性表的順序存儲結構 18
2.2.2 順序表 18
2.2.3 排序順序表 29
2.3 線性表的鏈式存儲和實現 37
2.3.1 線性表的鏈式存儲結構 37
2.3.2 單鍊表 38
2.3.3 雙鍊表 47
2.4 線性表套用:多項式的表示及運算 51
2.4.1 一元多項式的表示及運算 52
2.4.2 二元多項式的表示及運算 56
習題2 58
實驗2 線性表的基本操作 58
第3章 串 61
3.1 串抽象數據類型 61
3.2 串的存儲和實現 62
3.2.1 串的存儲結構 62
3.2.2 常量字元串類 63
3.2.3 變數字元串類 71
3.3 串的模式匹配 74
3.3.1 Brute-Force算法 74
3.3.2 模式匹配套用 76
3.3.3 KMP算法 79
習題3 85
實驗3 串的基本操作及模式匹配算法 85
第4章 棧和佇列 89
4.1 棧 89
4.1.1 棧抽象數據類型 89
4.1.2 順序棧 90
4.1.3 鏈式棧 90
4.1.4 棧的套用 91
4.2 佇列 97
4.2.1 佇列抽象數據類型 97
4.2.2 順序佇列 98
4.2.3 鏈式佇列 100
4.2.4 佇列的套用 102
4.2.5 優先佇列 103
4.3 遞歸 105
習題4 110
實驗4 棧和佇列以及遞歸算法 111
第5章 數組和廣義表 113
5.1 數組 113
5.2 特殊矩陣的壓縮存儲 118
5.2.1 三角矩陣、對稱矩陣和對角矩陣的壓縮存儲 118
5.2.2 稀疏矩陣的壓縮存儲 120
5.3 廣義表 127
5.3.1 廣義表抽象數據類型 127
5.3.2 廣義表的存儲結構 129
5.3.3 廣義表雙鍊表示的實現 131
習題5 134
實驗5 特殊矩陣和廣義表的存儲和運算 135
第6章 樹和二叉樹 137
6.1 樹及其抽象數據類型 137
6.1.1 樹定義 137
6.1.2 樹的術語 138
6.1.3 樹抽象數據類型 139
6.2 二叉樹 139
6.2.1 二叉樹定義 139
6.2.2 二叉樹性質 140
6.2.3 二叉樹的遍歷規則 141
6.2.4 二叉樹抽象數據類型 142
6.2.5 二叉樹的存儲結構 142
6.2.6 二叉樹的二叉鍊表實現 144
6.3.1 線索二叉樹定義 159
6.3.2 中序線索二叉樹 160
6.4 Huffman樹 163
6.4.1 Huffman編碼 163
6.4.2 Huffman樹及其構造算法 164
6.5 樹的表示和實現 171
6.5.1 樹的遍歷規則 171
6.5.2 樹的存儲結構 171
6.5.3 樹的父母孩子兄弟鍊表實現 172
習題6 175
實驗6 樹和二叉樹的基本操作 177
第7章 圖 180
7.1 圖及其抽象數據類型 180
7.1.1 圖的基本概念 180
7.1.2 圖抽象數據類型 183
7.2 圖的表示和實現 184
7.2.1 圖的鄰接矩陣表示和實現 184
7.2.2 圖的鄰接表表示和實現 191
7.2.3 圖的鄰接多重表表示 196
7.3 圖的遍歷 197
7.3.1 圖的深度優先搜尋遍歷 197
7.3.2 圖的廣度優先搜尋遍歷 200
7.4 最小生成樹 201
7.4.1 生成樹 201
7.4.2 最小生成樹的構造算法 203
7.5 最短路徑 206
7.5.1 單源最短路徑 207
7.5.2 每對頂點間的最短路徑 210
習題7 214
實驗7 圖的表示和操作 215
第8章 查找 216
8.1 查找的基本概念 216
8.2 二分法查找 218
8.3 基於索引表的分塊查找 220
8.4 散列 224
8.4.1 散列表 224
8.4.2 散列映射 230
8.5.1 二叉排序樹 234
8.5.2 樹映射 241
8.5.3 平衡二叉樹 242
習題8 245
實驗8 查找算法 247
第9章 排序 248
9.1 插入排序 248
9.1.1 直接插入排序 248
9.1.2 希爾排序 250
9.2 交換排序 251
9.2.1 冒泡排序 252
9.2.2 快速排序 253
9.3 選擇排序 256
9.3.2 堆排序 257
9.4 歸併排序 260
9.5 線性表的排序算法 262
9.5.1 順序表的排序算法 262
9.5.2 單鍊表的排序算法 263
9.5.3 循環雙鍊表的排序算法 264
習題9 267
實驗9 排序算法設計及分析 267
第10章 綜合套用設計 269
10.1.1 Comparator比較器接口 269
10.1.2 Arrays數組類 269
10.1.3 集合 270
10.1.4 映射 276
10.2 實現疊代器 277
10.2.1 提供疊代器的類 277
10.2.2 基於疊代器的操作 280
10.3 算法設計策略 281
10.3.1 分治法 282
10.3.2 動態規劃法 283
10.3.3 貪心法 285
10.3.4 回溯法 295
10.4 課程設計的目的、要求和選題 309
附錄A ASCII字元與Unicode值 316
附錄B Java關鍵字 317
附錄C Java基本數據類型 319
附錄D Java運算符及其優先權 320
附錄E Java類庫(部分) 321
E.1 java.lang語言包 321
E.2 java.util實用包 324
附錄F MyEclipse常用選單命令 326
參考文獻 328

相關詞條

熱門詞條

聯絡我們