圖解數據結構——使用Java

圖解數據結構——使用Java

《圖解數據結構——使用Java》作者為胡昭民,定價為49元。

基本介紹

  • 書名:圖解數據結構——使用Java
  • 作者:胡昭民
  • 出版社:清華大學出版社 
  • 出版時間:2015年08月01日
  • 定價:49 元
  • ISBN:9787302402992
  • 印次:1-1
  • 印刷日期:2015.06.26
內容簡介,目錄,

內容簡介

這是一本以Java程式語言實戰來解說數據結構概念的教材。全書內容淺顯易懂,利用大量且豐富的圖示與範例,詳解複雜的抽象理論,從最基本的數據結構概念開始說明,再以Java工具加以詮釋陣列結構、堆疊、鍊表、佇列、排序、查找等重要的概念,引領讀者抓住重點輕鬆進入數據結構的學習領域。
本書每章重要理論均有範例實現,書中收錄了精華的演算法及程式的執行過程,線上閱讀或下載附有完整的範例程式原始碼,讀者可以依照學習進度做練習。除此之外,還有配合各章教學內容的練習題目,以便讀者測試自己的學習效果。
本書內容架構完整,邏輯清楚,採用豐富的圖例來闡述基本概念及套用,有效提升可讀性。以Java程式語言實現數據結構中的重要理論,以範例程式說明數據結構的內涵。採用“Eclipse”JavaID工具,整合編譯、執行、測試及除錯功能。強調邊做邊學,結合下載檔案,給予最完整的支援。

目錄

第1章 數據結構導論 1
1.1 數據結構簡介 2
1.1.1 數據與信息 2
1.1.2 算法 3
1.1.3 算法的條件 3
1.2 認識程式設計 5
1.2.1 程式開發流程 5
1.2.2 數據類型簡介 6
1.2.3 結構化程式設計 6
1.2.4 面向對象程式設計 7
1.3 算法效能分析 9
1.3.1 時間複雜度 9
1.3.2 Big-oh 10
1.3.3 Ω(omega) 11
1.3.4 θ(theta) 12
1.4 面向對象程式設計與Java 12
1.4.1 類與對象 12
1.4.2 面向對象特性 14
1.4.3 數據封裝 14
1.4.4 類繼承 15
1.4.5 對象多態 17
1.4.6 抽象類 19
1.4.7 接口 20
本章重點整理 22
本章習題 23
第2章 數組結構 29
2.1 線性表 30
2.1.1 線性表定義 30
2.1.2 線性表在計算機中的套用 30
2.2 認識數組 31
2.2.1 一維數組 32
2.2.2 二維數組 33
2.2.3 三維數組 35
2.2.4 n維數組 37
2.2.5 Arrays類實現 38
2.3 矩陣的簡介與運算 40
2.3.1 矩陣相加 40
2.3.2 矩陣相乘 42
2.3.3 轉置矩陣 45
2.3.4 稀疏矩陣 46
2.3.5 上三角形矩陣 50
2.3.6 下三角形矩陣 55
2.4數組與多項式 60
2.4.1認識多項式 60
2.4.2多項式的加法 60
本章重點整理 61
本章習題 63
第3章鍊表 67
3.1 單向鍊表 68
3.1.1建立單向鍊表 70
3.1.2單向鍊表節點的刪除 74
3.1.3單向鍊表的節點插入 78
3.1.4單向鍊表的反轉 80
3.1.5單向鍊表的串聯 84
3.1.6多項式的列表表示法 85
3.2環形鍊表 89
3.2.1環形鍊表的定義 89
3.2.2環形鍊表的節點插入 90
3.2.3環形鍊表的節點刪除 90
3.2.4環形鍊表的串聯 93
3.2.5環形鍊表表示稀疏矩陣 97
3.3雙向鍊表 98
3.3.1雙向鍊表的定義 98
3.3.2雙向鍊表的節點插入 98
3.3.3雙向鍊表節點刪除 99
本章重點整理 103
本章習題 103
第4章堆疊 110
4.1認識堆疊 111
4.1.1堆疊的運算 111
4.1.2堆疊的數組實現 111
4.1.3堆疊的表實現 115
4.2堆疊的套用 118
4.2.1漢諾塔問題 118
4.2.2迷宮問題 124
4.2.3八皇后問題 129
4.3算術表達式的求值法 132
4.3.1中序表示法求值 133
4.3.2前序表示法求值 134
4.3.3後序表示法求值 135
4.4中序法轉換為前序法 136
4.4.1二叉樹法 136
4.4.2括弧法 136
4.4.3堆疊法 137
4.5前序與後序式轉換成中序式 143
4.5.1括弧法 143
4.5.2堆疊法 144
本章重點整理 146
本章習題 147
第5章佇列 155
5.1認識佇列 156
5.1.1佇列的工作運算 156
5.1.2佇列的數組實現 156
5.1.3以鍊表實現佇列 159
5.2佇列的套用 161
5.2.1環形佇列 162
5.2.2優先佇列 165
5.2.3雙向佇列 166
本章重點整理 169
本章習題 169
第6章樹狀結構 172
6.1樹 173
6.2二叉樹簡介 174
6.2.1二叉樹的定義 175
6.2.2特殊二叉樹簡介 176
6.3二叉樹存儲方式 177
6.3.1數組表示法 177
6.3.2列表表示法 179
6.4二叉樹的遍歷 181
6.4.1中序遍歷 182
6.4.2前序遍歷 182
6.4.3後序遍歷 183
6.4.4二叉樹的遍歷實現 183
6.4.5二叉運算樹 187
6.5二叉樹的高級研究 192
6.6樹的二叉樹表示法 205
6.6.1樹轉換為二叉樹 205
6.6.2樹林轉換為二叉樹 209
6.6.3樹與樹林的遍歷 211
6.6.4確定唯一二叉樹 214
本章重點整理 216
本章習題 217
第7章圖形結構 224
7.1圖論的起源 225
7.2圖形介紹 226
7.3圖形表示法 228
7.3.1相鄰矩陣法 228
7.3.2相鄰表法 232
7.3.3相鄰多元列表法 236
7.3.4索引表格法 237
7.4圖形的遍歷 239
7.4.1先深後廣法 240
7.4.2先廣後深法 243
7.5生成樹 246
7.6MST生成樹 248
7.6.1Prim算法 249
7.6.2Kruskal算法 250
7.7圖形最短路徑 255
7.7.1單點對全部頂點 256
7.7.2頂點兩兩之間的最短距離 259
7.8AOV網路與拓撲排序 263
7.8.1AOV網路簡介 264
7.8.2拓撲排序實現 264
7.8.3AOE網路 266
本章重點整理 268
本章習題 269
第8章排序 277
8.1排序簡介 278
8.1.1排序的分類 279
8.1.2排序算法分析 279
8.2內部排序法 280
8.2.5合併排序法 292
8.2.7堆積排序法 297
8.3外部排序法 307
本章重點整理 316
本章習題 317
第9章查找 323
9.1查找簡介 324
9.2常見查找方法 324
9.2.2二分查找法 326
9.2.3插值查找法 328
9.2.4斐波那契查找法 331
9.3哈希查找法 333
9.3.1哈希法簡介 333
9.3.2常見的哈希函式 334
9.3.3碰撞問題 338
9.3.4哈希法綜合範例 342
本章重點整理 345
本章習題 346
附錄Java的開發環境簡介 353

相關詞條

熱門詞條

聯絡我們