數據結構與算法 Java語言版 版權信息
- ISBN:9787302662747
- 條形碼:9787302662747 ; 978-7-302-66274-7
- 裝幀:70g膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
數據結構與算法 Java語言版 本書特色
本書特色:(1)注重夯實基礎。注重講解每種數據結構的特點,并結合實例講解怎樣正確地使用相應的數據結構和算法。
(2) 關注實用性。注重結合一些經典問題和實際問題,使讀者在學習數據結構和算法后能加深對實際問題的了解,并提高解決某些實際問題的能力。
(3)強調培養能力。精選經典和實用性強的算法思想,并結合經典的問題體現這些算法思想的精髓,有利于幫助讀者掌握如何設計和實現高效、優秀的算法。
(4)體現語言特色。特別注重體現Java語言的特色,除了前3章以外,其余各章的大部分代碼都體現了Java的特色和Java在算法實現方面的優勢。
本書配套資源豐富,包括教學大綱、教學課件、電子教案、程序源碼、在線題庫和習題答案。
數據結構與算法 Java語言版 內容簡介
本書面向有一定Java語言基礎的讀者,重點講解數據結構和相關算法以及經典算法思想。本書不僅注重講解每種數據結構的特點,而且特別注重結合實例講解怎樣正確地使用每種數據結構和相應的算法,強調使用數據結構和算法解決問題。本書精選了一些經典和實用性強的算法思想,并通過解決一些經典的問題體現這些算法思想的精髓。全書共14章,分別是數據結構概述、算法與復雜度、遞歸算法、數組與Arrays類、鏈表與LinkedList類、順序表與ArrayList類、棧與Stack類、隊列與ArrayDeque類、二叉樹與TreeSet類、散列表與HashMap類、集合與HashSet類、常用算法與Collections類、圖論和經典算法思想。本書特別注重體現Java語言的特色,除了前3章以外,其余各章的大部分代碼都體現了Java的特色和Java在算法實現方面的優勢。
本書可作為計算機相關專業的數據結構與算法的教材,也可作為軟件開發等專業人員的參考用書。
數據結構與算法 Java語言版 目錄
第1章 數據結構概述
1.1 邏輯結構 ……………………………………………………………………………… 1
1.2 物理結構 ……………………………………………………………………………… 6
1.3 算法與結構 …………………………………………………………………………… 6 習題 1 ……………………………………………………………………………………… 7
第2章 算法與復雜度
2.1 算法 …………………………………………………………………………………… 8
2.2 算法的復雜度 ………………………………………………………………………… 8
2.3 常見的復雜度 ………………………………………………………………………… 10 習題 2 ……………………………………………………………………………………… 22
第3章 遞歸算法
3.1 遞歸算法簡介 ………………………………………………………………………… 23
3.2 線性遞歸與非線性遞歸 ……………………………………………………………… 24
3.2.1 線性遞歸 ……………………………………………………………………… 24
3.2.2 非線性遞歸 …………………………………………………………………… 26
3.3 問題與子問題 ………………………………………………………………………… 28
3.4 遞歸與迭代 …………………………………………………………………………… 30
3.5 多重遞歸 ……………………………………………………………………………… 33
3.6 經典遞歸 ……………………………………………………………………………… 35
3.6.1 楊輝三角形 …………………………………………………………………… 35
3.6.2 老鼠走迷宮 …………………………………………………………………… 37
3.6.3 漢諾塔 ………………………………………………………………………… 39
3.7 優化遞歸 ……………………………………………………………………………… 45 習題 3 ……………………………………………………………………………………… 48
第4章 數組與Arrays類
4.1 引用與參數存值 ……………………………………………………………………… 49
4.1.1 數組的引用 …………………………………………………………………… 49
4.1.2 參數存值 ……………………………………………………………………… 51
4.2 數組與排序 …………………………………………………………………………… 53
4.2.1 快速排序 ……………………………………………………………………… 53
4.2.2 歸并排序 ……………………………………………………………………… 57
4.3 數組的二分查找 ……………………………………………………………………… 59
4.3.1 二分法 ………………………………………………………………………… 59
4.3.2 過濾數組 ……………………………………………………………………… 60
4.4 數組的復制 …………………………………………………………………………… 61
4.4.1 復制數組的方法 ……………………………………………………………… 61
4.4.2 處理重復數據 ………………………………………………………………… 63
4.5 數組的比較 …………………………………………………………………………… 64
4.6 公共子數組 …………………………………………………………………………… 65
4.7 數組的更新 …………………………………………………………………………… 69
4.7.1 單值更新 ……………………………………………………………………… 69
4.7.2 動態更新 ……………………………………………………………………… 69
4.8 數組的前綴算法 ……………………………………………………………………… 70
4.9 動態遍歷 ……………………………………………………………………………… 71
4.9.1 動態方法 ……………………………………………………………………… 71
4.9.2 編寫動態方法 ………………………………………………………………… 72
4.9.3 多線程遍歷 …………………………………………………………………… 73
4.10 數組與洗牌 ………………………………………………………………………… 74
4.11 數組與生命游戲 …………………………………………………………………… 76 習題 4 ……………………………………………………………………………………… 79
第5章 鏈表與LinkedList類
5.1 鏈表的特點 …………………………………………………………………………… 80
5.2 創建鏈表 ……………………………………………………………………………… 83
5.3 查詢與相等 …………………………………………………………………………… 85
5.4 添加節點 ……………………………………………………………………………… 89
5.5 刪除節點 ……………………………………………………………………………… 90
5.6 更新節點 ……………………………………………………………………………… 93
5.7 鏈表的視圖 …………………………………………………………………………… 94
5.8 鏈表的排序 …………………………………………………………………………… 95
5.9 遍歷鏈表 ……………………………………………………………………………… 97
5.10 鏈表與數組 ………………………………………………………………………… 103
5.11 不可變鏈表 ………………………………………………………………………… 104
5.12 編寫簡單的類創建鏈表 …………………………………………………………… 104 習題 5 …………………………………………………………………………………… 109
第6章 順序表與ArrayList類
6.1 順序表的特點 ……………………………………………………………………… 110
6.2 創建順序表 ………………………………………………………………………… 111
6.3 順序表的常用方法 ………………………………………………………………… 113
6.4 遍歷順序表 ………………………………………………………………………… 116
6.5 順序表與篩選法 …………………………………………………………………… 118
6.6 順序表與全排列 …………………………………………………………………… 120
6.7 順序表與組合 ……………………………………………………………………… 125
6.8 順序表與記錄 ……………………………………………………………………… 130
6.9 Vector 類 …………………………………………………………………………… 132 習題 6 …………………………………………………………………………………… 135
第7章 棧與Stack類
7.1 棧的特點 …………………………………………………………………………… 136
7.2 棧的創建與獨特的方法 …………………………………………………………… 137
7.3 棧與回文串 ………………………………………………………………………… 139
7.4 棧與遞歸 …………………………………………………………………………… 140
7.5 棧與 undo 操作 …………………………………………………………………… 141
7.6 棧與括號匹配 ……………………………………………………………………… 143
7.7 棧與深度優先搜索 ………………………………………………………………… 144
7.8 棧與后綴表達式 …………………………………………………………………… 147 習題 7 …………………………………………………………………………………… 152
第8章 隊列與ArrayDeque類
8.1 隊列的特點 ………………………………………………………………………… 153
8.2 隊列的創建與獨特的方法 ………………………………………………………… 154
8.3 隊列與回文串 ……………………………………………………………………… 156
8.4 隊列與加密、解密 ………………………………………………………………… 157
8.5 隊列與約瑟夫問題 ………………………………………………………………… 158
8.6 隊列與廣度優先搜索 ……………………………………………………………… 159
8.7 隊列與網絡爬蟲 …………………………………………………………………… 161
8.8 隊列與排隊 ………………………………………………………………………… 164 習題 8 …………………………………………………………………………………… 166
第9章 二叉樹與TreeSet類
9.1 二叉樹的基本概念 ………………………………………………………………… 167
9.2 遍歷二叉樹 ………………………………………………………………………… 168
9.3 二叉樹的存儲 ……………………………………………………………………… 170
9.4 平衡二叉樹 ………………………………………………………………………… 172
9.5 二叉查詢樹和平衡二叉查詢樹 …………………………………………………… 172
9.6 TreeSet 樹集………………………………………………………………………… 176
9.7 樹集的基本操作 …………………………………………………………………… 178
9.8 樹集的視圖 ………………………………………………………………………… 182
9.9 樹集與數據統計 …………………………………………………………………… 183
9.10 樹集與過濾數據 …………………………………………………………………… 185
9.11 樹集與節目單 ……………………………………………………………………… 187 習題 9 …………………………………………………………………………………… 188
第 10 章 散列表與 HashMap 類
10.1 散列結構的特點 …………………………………………………………………… 189
10.2 簡單的散列函數 …………………………………………………………………… 191
10.3 HashMap 類 ……………………………………………………………………… 195
10.4 散列表的基本操作 ………………………………………………………………… 198
10.5 遍歷散列表 ………………………………………………………………………… 200
10.6 統計字符、單詞出現的次數和頻率 ……………………………………………… 201
10.7 散列表與單件模式 ………………………………………………………………… 204
10.8 散列表與數據緩存 ………………………………………………………………… 206
10.9 TreeMap 類 ……………………………………………………………………… 207
10.10 Hashtable 類 …………………………………………………………………… 212
習題 10 …………………………………………………………………………………… 213
第 11 章 集合與 HashSet 類
11.1 集合的特點 ………………………………………………………………………… 214
11.2 HashSet 類 ………………………………………………………………………… 214
11.3 集合的基本操作 …………………………………………………………………… 216
11.4 集合與數據過濾 …………………………………………………………………… 218
11.5 正整數集合的生成集 ……………………………………………………………… 219
11.6 獲得隨機數的速度 ………………………………………………………………… 220 習題 11 …………………………………………………………………………………… 221
第 12 章 常用算法與 Collections 類
12.1 排序 ………………………………………………………………………………… 222
12.2 二分查找 …………………………………………………………………………… 224
12.3 反轉與旋轉 ………………………………………………………………………… 225
12.4 洗牌 ………………………………………………………………………………… 227
12.5 求*大值與*小值 ………………………………………………………………… 227
12.6 統計次數和頻率 …………………………………………………………………… 228 習題 12 …………………………………………………………………………………… 230
第 13 章 圖論
13.1 無向圖 ……………………………………………………………………………… 231
13.2 有向圖 ……………………………………………………………………………… 232
13.3 無向網絡和有向網絡 ……………………………………………………………… 233
13.4 圖的存儲 …………………………………………………………………………… 234
13.5 圖的遍歷 …………………………………………………………………………… 239
13.6 測試連通圖 ………………………………………………………………………… 244
13.7 *短路徑 …………………………………………………………………………… 247
13.8 *小生成樹 ………………………………………………………………………… 251 習題 13 …………………………………………………………………………………… 254
第 14 章 經典算法思想
14.1 貪心算法 …………………………………………………………………………… 255
14.2 動態規劃 …………………………………………………………………………… 258
14.3 回溯算法 …………………………………………………………………………… 261 習題 14 …………………………………………………………………………………… 265
附錄 A 對象與接口的關鍵知識點 ………………………………… 266
參考文獻 ………………………………………………………………………………… 273
展開全部
數據結構與算法 Java語言版 作者簡介
耿祥義,1995年中國科學技術大學博士畢業,獲理學博士學位。1997年從中山大學博士后流動站出站,現任大連交通大學教授。有多年教授Java語言的經驗,已編寫出版十余部教材。
張躍平,現任大連交通大學副教授。已編寫和參編出版《Visual FoxPro課程設計》《Java 2實用教程》《JSP實用教程》《C語言程序設計教程》等多部教材。