新到貨2本75折
Java語言程序設計與數據結構(原書第11版)

Java語言程序設計與數據結構(原書第11版)

  • 定價:594
  • 優惠價:87517
  • 運送方式:
  • 臺灣與離島
  • 海外
  • 可配送點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
  • 可配送點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
載入中...
  • 分享
 

內容簡介

本書是Java語言的經典教材,中文版分為基礎篇和進階篇,主要介紹程序設計基礎、面向對象程序設計、GUI程序設計、數據結構和演算法、高級Java程序設計等內容。本書以示例介紹解決問題的技巧,提供大量的程序清單,每章配有大量複習題和編程練習題,幫助讀者掌握編程技術,並應用所學技術解決實際工程問題。進階篇突出數據結構和演算法,主要涵蓋以下內容:泛型,規則集和映射,開發高效演算法,實現線性表、棧、隊列和優先隊列,二叉搜索樹,AVL樹,散列,圖及其應用,加權圖及其應用,集合流的聚合操作等。本書可作為高等院校電腦專業相關課程的教材,也可供Java語言及編程愛好者參考。





 

作者介紹

梁勇(Y. Daniel Liang)現為阿姆斯特朗亞特蘭大州立大學電腦科學系教授。之前曾是普度大學電腦科學系副教授,並曾兩次獲得普度大學傑出研究獎。他所編寫的Java教 程在美國大學Java課程中採用率極高,同時他還兼任Prentice Hall Java系列叢書的編輯。他是「Java Champion」榮譽得主,並在世界各地給在校學生和程序員做Java語言及技術方面的講座。
 

目錄

出版者的話
中文版序
譯者序
前言
第19章 泛型 1
19.1 引言 1
19.2 動機和優點 1
19.3 定義泛型類和介面 4
19.4 泛型方法 5
19.5 示例學習:對一個物件陣列進行排序 7
19.6 原生類型和向後相容 8
19.7 通配泛型 10
19.8 泛型的擦除和限制 12
19.9 示例學習:泛型矩陣類 15
關鍵術語 19
本章小結 19
測試題 20
程式設計練習題 20
第20章 線性表、棧、佇列和優先佇列 22
20.1 引言 22
20.2 集合 23
20.3 反覆運算器 26
20.4 使用forEach方法 27
20.5 線性表 28
20.5.1 List介面中的通用方法 28
20.5.2 陣列線性表類ArrayList和鏈表類LinkedList 29
20.6 Comparator介面 32
20.7 線性表和集合的靜態方法 36
20.8 示例學習:彈球 39
20.9 向量類和棧類 42
20.10 佇列和優先佇列 44
20.10.1 Queue介面 44
20.10.2 雙端佇列Deque和鏈表LinkedList 45
20.11 示例學習:運算式求值 47
關鍵術語 51
本章小結 51
測試題 51
程式設計練習題 51
第21章 規則集和映射 57
21.1 引言 57
21.2 規則集 57
21.2.1 HashSet 58
21.2.2 LinkedHashSet 61
21.2.3 TreeSet 62
21.3 比較規則集和線性表的性能 65
21.4 示例學習:關鍵字計數 67
21.5 映射 69
21.6 示例學習:單詞的出現次數 73
21.7 單元素與不可變的集合和映射 75
關鍵術語 76
本章小結 76
測試題 77
程式設計練習題 77
第22章 開發高效演算法 79
22.1 引言 79
……
22.3 示例:確定大O 81
22.4 分析演算法的時間複雜度 85
22.4.1 分析二分查找演算法 85
22.4.2 分析選擇排序演算法 85
22.4.3 分析漢諾塔問題 85
22.4.4 常用的遞推關係 86
22.4.5 比較常用的增長函數 86
22.5 使用動態程式設計尋找斐波那契數 87
22.6 使用歐幾裡得演算法求最大公約數 89
22.7 尋找素數的高效演算法 93
22.8 使用分而治之法尋找最近點對 99
22.9 使用回溯法解決八皇后問題 101
22.10 計算幾何:尋找凸包 103
22.10.1 卷包裹演算法 104
22.10.2 格雷厄姆演算法 105
關鍵術語 106
本章小結 106
測試題 107
程式設計練習題 107
第23章 排序 114
23.1 引言 114
23.2 插入排序 115
23.3 冒泡排序 117
23.4 歸併排序 119
23.5 快速排序 122
23.6 堆排序 126
23.6.1 堆的存儲 127
23.6.2 添加一個新的結點 127
23.6.3 刪除根結點 128
23.6.4 Heap類 129
23.6.5 使用Heap類進行排序 131
23.6.6 堆排序的時間複雜度 132
23.7 桶排序和基數排序 133
23.8 外部排序 135
23.8.1 實現階段Ⅰ 136
23.8.2 實現階段Ⅱ 137
23.8.3 結合兩個階段 139
23.8.4 外部排序複雜度 141
關鍵術語 142
本章小結 142
測試題 142
程式設計練習題 142
第24章 實現線性表、棧、佇列和優先佇列 146
24.1 引言 146
24.2 線性表的通用操作 146
24.3 陣列線性表 149
24.4 鏈表 156
24.4.1 結點 156
24.4.2 MyLinkedList類 158
24.4.3 實現MyLinkedList 159
24.4.4 MyArrayList和MyLinkedList 167
24.4.5 鏈表的變體 167
24.5 棧和佇列 169
24.6 優先佇列 172
本章小結 173
測試題 174
程式設計練習題 174
第25章 二叉搜尋樹 176
25.1 引言 176
25.2 二叉搜尋樹 176
25.2.1 表示二叉搜尋樹 177
25.2.2 查找一個元素 178
25.2.3 在BST中插入一個元素 178
25.2.4 樹的遍歷 179
25.2.5 BST類 180
25.3 刪除BST中的一個元素 189
25.4 樹的視覺化和MVC 194
25.5 反覆運算器 197
25.6 示例學習:資料壓縮 199
關鍵術語 204
本章小結 204
測試題 204
程式設計練習題 204
第26章 AVL樹 208
26.1 引言 208
26.2 重新平衡樹 209
26.3 為AVL樹設計類 211
26.4 重寫insert方法 212
26.5 實現旋轉 213
26.6 實現delete方法 213
26.7 AVLTree類 214
26.8 測試 AVLTree類 219
26.9 AVL樹的時間複雜度分析 222
關鍵術語 222
本章小結 223
測試題 223
程式設計練習題 223
第27章 散列 225
27.1 引言 225
27.2 什麼是散列 225
27.3 散列函數和散列碼 226
27.3.1 基底資料型別的散列碼 226
27.3.2 字串的散列碼 227
27.3.3 壓縮散列碼 227
27.4 使用開放位址法處理衝突 228
27.4.1 線性探測法 228
27.4.2 二次探測法 230
27.4.3 雙重散列法 230
27.5 使用分離連結法處理衝突 232
27.6 裝填因數和再散列 232
27.7 使用散列實現映射 233
27.8 使用散列實現規則集 242
關鍵術語 248
本章小結 249
測試題 249
程式設計練習題 249
第28章 圖及其應用 251
28.1 引言 251
28.2 基本的圖術語 252
28.3 表示圖 254
28.3.1 表示頂點 254
28.3.2 表示邊:邊陣列 255
28.3.3 表示邊:Edge對象 256
28.3.4 表示邊:鄰接矩陣 256
28.3.5 表示邊:鄰接線性表 257
28.4 圖的建模 259
28.5 圖的視覺化 268
28.6 圖的遍歷 271
28.7 深度優先搜索 272
28.7.1 DFS的演算法 272
28.7.2 DFS的實現 273
28.7.3 DFS的應用 274
28.8 示例學習:連通圓問題 275
28.9 廣度優先搜索 278
28.9.1 BFS的演算法 278
28.9.2 BFS的實現 278
28.9.3 BFS的應用 280
28.10 示例學習:9枚硬幣反面問題 281
關鍵術語 286
本章小結 286
測試題 286
程式設計練習題 286
第29章 加權圖及其應用 291
29.1 引言 291
29.2 加權圖的表示 292
29.2.1 加權邊的表示:邊陣列 292
29.2.2 加權鄰接矩陣 293
29.2.3 鄰接線性表 293
29.3 WeightedGraph類 294
29.4 最小生成樹 301
29.4.1 最小生成樹演算法 302
29.4.2 完善Prim的MST演算法 303
29.4.3 MST演算法的實現 304
29.5 尋找最短路徑 307
29.6 示例學習:加權的9枚硬幣反面問題 315
關鍵術語 318
本章小結 318
測試題 319
程式設計練習題 319
第30章 集合流的聚合操作 325
30.1 引言 325
30.2 流管道 326
30.2.1 Stream.of、limit、forEach方法 328
30.2.2 sorted方法 329
30.2.3 filter方法 329
30.2.4 max和min方法 329
30.2.5 anyMatch、allMatch和noneMatch方法 329
30.2.6 map、distinct和count方法 329
30.2.7 findFirst、findAny和toArray方法 330
30.3 IntStream、LongStream和DoubleStream 331
30.4 並行流 333
30.5 使用reduce方法進行流的歸約 336
30.6 使用collect方法進行流的歸約 338
30.7 使用groupingBy收集器進行元素分組 341
30.8 示例學習 344
30.8.1 示例學習:數字分析 344
30.8.2 示例學習:計算字母的出現次數 345
30.8.3 示例學習:計算字串中每個字母的出現次數 346
30.8.4 示例學習:處理二維陣列中的所有元素 347
30.8.5 示例學習:得到目錄大小 348
30.8.6 示例學習:關鍵字計數 349
30.8.7 示例學習:單詞出現次數 350
本章小結 351
測試題 351
程式設計練習題 351
附錄A Java關鍵字 353
附錄B ASCII字元集 354
附錄C 操作符優先順序表 355
附錄D Java修飾符 356
附錄E 特殊浮點值 357
附錄F 數系 358
附錄G 位操作符 362
附錄H 規則運算式 363
附錄I 枚舉類型 367
 

詳細資料

  • ISBN:9787111610038
  • 規格:平裝 / 370頁 / 19 x 26 x 1.85 cm / 普通級 / 1-1
  • 出版地:中國

最近瀏覽商品

 

相關活動

  • 【自然科普、電腦資訊】童話裡的心理學【博客來電子書獨家-作者電子贈言簽名扉頁版】
 

購物說明

溫馨提醒您:若您訂單中有購買簡體館無庫存/預售書或庫存於海外廠商的書籍,建議與其他商品分開下單,以避免等待時間過長,謝謝。

大陸出版品書況:因裝幀品質及貨運條件未臻完善,書況與台灣出版品落差甚大,封面老舊、出現磨痕、凹痕等均屬常態,故簡體字館除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。 

 

請注意,部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

調貨時間:若您購買海外庫存之商品,於您完成訂購後,商品原則上約30個工作天內抵台(若有將延遲另行告知)。為了縮短等待的時間,建議您將簡體書與其它商品分開訂購,以利一般商品快速出貨。 

若您具有法人身份為常態性且大量購書者,或有特殊作業需求,建議您可洽詢「企業採購」。 

退換貨說明 

會員所購買的商品均享有到貨十天的猶豫期(含例假日)。退回之商品必須於猶豫期內寄回。 

辦理退換貨時,商品必須是全新狀態與完整包裝(請注意保持商品本體、配件、贈品、保證書、原廠包裝及所有附隨文件或資料的完整性,切勿缺漏任何配件或損毀原廠外盒)。退回商品無法回復原狀者,恐將影響退貨權益或需負擔部分費用。 

訂購本商品前請務必詳閱商品退換貨原則

  • 心理與哲學
  • 滿799現折79
  • 言情新品