一般分類: 教科專業 > 自然科學 > 電腦科學 
     
    資料結構與演算法:使用JAVA(96/07)
    編/著者: 劉傳銘 譯
    出版社:全華
    出版日期:2007-07-01
    ISBN:9789572157114
    參考分類(CAT):電腦科學
    參考分類(CIP): 電腦科學

    優惠價:9折,612

    定價:  $680 

    無法訂購
    分享
      買了此商品的人,也買了....
    定價:450 元
    特價:90折!405
     
    定價:1000 元
    特價:90折!900
     
    定價:420 元
    特價:90折!378
     
    定價:580 元
    特價:90折!522
     
    定價:380 元
    特價:90折!342
     
      | 內容簡介 |
    內容簡介
      本書為Goodrich與Tamassia累積多年經驗,根據JAVA 5 .0程式語言之需求,所撰寫關於資料結構與演算法之書籍。內容架構完整,鉅細靡遺。並透過書中的圖片及教學網站的解說使讀者清楚了解資料結構與演算法的觀念。並附有精選習題,課後立即複習,加強實力。 本書特色 1 . 本書為Goodrich與Tamassia累積多年經驗,根據JAVA 5 .0程式語言之需求,所撰寫關於資料結構與演算法之書籍。2 . 書中程式碼與例題均能將JAVA5 .0版本之特色呈現出來。3 . 透過書中的圖片及教學網站上的動畫清晰的解說資料結構與演算法的觀念。4 . 藉由數百個精選的習題,以增強讀者暸解概念。5 . 新增符合目前科技發展的專題研究題目。
    目次
    第1章 基本Java程式設計1.1 入門:類別、型別與物件1.1.1 基本型別1.1.2 物件1.1.3 列舉 (Enum) 型別1.2 方法1.3 運算式1.3.1 字面常數1.3.2 運算子1.3.3 運算式中的「轉型」與「自動裝箱∕拆箱」1.4 控制流1.4.1 If及Switch述句1.4.2 迴圈1.4.3 顯式控制流述句1.5 陣列1.5.1 陣列的宣告1.5.2 陣列物件1.6 簡單輸入與輸出1.7 範例程式1.8 巢狀類別與套件1.9 Java程式的撰寫1.9.1 設計1.9.2 虛擬碼1.9.3 撰寫程式碼1.9.4 測試及除錯1.10 習題第2章 物件導向設計2.1 目標、法則與設計模式2.1.1 物件導向設計的目標2.1.1 物件導向設計法則2.1.3 設計模式2.2 繼承與多型2.2.1 繼承2.2.2 多型2.2.3 使用Java繼承2.3 例外2.3.1 丟出例外2.3.2 「接住」例外2.4 介面及抽象類別2.4.1 實作介面2.4.2 介面中的多重繼承2.4.3 抽象類別與強型別2.5 轉型與泛型2.5.1 轉型2.5.2 泛型2.6 習題第3章 陣列、連結串鏈及遞迴3.1 陣列的使用3.1.1 在陣列存放遊戲條目3.1.2 排序一個陣列3.1.3 陣列和隨機數字的java.util方法3.1.4 用字串和字元陣列的簡單密碼學3.1.5 二維陣列和定位遊戲3.2 單向連結串鏈3.2.1 單向連結串鏈的插入3.2.2 從一個單向連結串鏈移除元素3.3 雙向連結串鏈3.3.1 在雙向連結串鏈的中間作插入3.3.2 在雙向連結串鏈的中間作移除3.3.3 雙向連結串鏈的實作3.4 循環連結串鏈和連結串鏈的排序3.4.1 循環連結串鏈和抓鬼遊戲Duck, Duck, Goose3.4.2 排序一個連結串鏈3.5 遞迴3.5.1 線性遞迴3.5.2 二元遞迴3.5.3 多元遞迴3.6 習題第4章 分析工具4.1 在本書中用到的七個函數4.1.1 常數函數4.1.2 對數函數4.1.3 線性函數4.1.4 N-log-N函數4.1.5 二次方函數4.1.6 三次方函數及其它多項式4.1.7 指數函數4.1.8 比較成長率4.2 演算法分析4.2.1 實驗分析4.2.2 原生指令4.2.3 漸近符號4.2.4 漸近分析4.2.5 使用Big-Oh標記法4.2.6 計算冪次的遞迴演算法4.3 簡單的驗證技巧4.3.1 實例證明4.3.2 反向證明法4.3.3 歸納法及迴圈不變量4.4 習題第5章 堆疊與佇列5.1 堆疊5.1.1 堆疊抽象資料型態5.1.2 利用陣列完成的簡單堆疊實作5.1.3 利用泛型連結串鏈完成的堆疊實作5.1.4 用堆疊反轉一個陣列5.1.5 括號及HTML標籤配對5.2 佇列5.2.1 佇列抽象資料型態5.2.2 利用陣列完成的簡單佇列實作5.2.3 使用泛型連結串鏈實作佇列5.2.4 循環排程器5.3 雙端佇列5.3.1 雙端佇列抽象資料型態5.3.2 Deque的實作5.4 習題第6章 串列與迭代器6.1 陣列串列6.1.1 陣列串列的抽象資料型態6.1.2 轉接器模式6.1.3 以陣列為基礎的簡單實作6.1.4 一個簡單的介面與java.util.ArrayList類別6.1.5 利用可延伸陣列實作陣列串列6.2 節點串列6.2.1 以節點為基礎的運算6.2.2 位置6.2.3 節點串列抽象資料型態6.2.4 雙向連結串鏈實作6.3 迭代器6.3.1 迭代器與可迭代的抽象資料型態6.3.2 Java的For-Each迴圈6.3.3 實作迭代器6.3.4 Java的串列迭代器6.4 List ADTs以及Collections框架6.4.1 Java的Collections框架6.4.2 java.util.LinkedList類別6.4.3 序列6.5 案例研究:移至前端試探法6.5.1 使用排序串列以及巢狀類別6.5.2 以「移至前端試探法」使用串列6.5.3 Favorites List的可能應用6.6 習題第7章 樹7.1 一般樹7.1.1 樹的定義及特性7.1.2 樹抽象資料型態7.1.3 樹的實作7.2 樹的走訪演算法7.2.1 深度和高度7.2.2 前序走訪7.2.3 後序走訪7.3 二元樹7.3.1 二元樹ADT7.3.2 Java的二元樹介面7.3.3 二元樹的性質7.3.4 二元樹的鏈結結構7.3.5 二元樹的陣列串列表示法7.3.6 二元樹的走訪7.3.7 樣版方法模式7.4 習題第8章 優先權佇列8.1 優先權佇列抽象資料結構8.1.1 鍵、優先權與全體順序關係8.1.2 項目與比較子8.1.3 優先權佇列ADT8.1.4 以優先權佇列排序8.2 使用串列實作優先權佇列8.2.1 利用未排序串列來實作8.2.2 利用已排序串列來實作8.2.3 選擇排序及插入排序8.3 堆積8.3.1 堆積資料結構8.3.2 完整二元樹及其表示法8.3.3 使用堆積實作優先權佇列8.3.4 Java堆積實作8.3.5 堆積排序8.3.6 由下到上建構堆積8.4 可轉接的優先權佇列8.4.1 可轉接優先權佇列之方法8.4.2 定位感知項目8.4.3 實作可轉接優先權佇列8.5 習題第9章 映射與字典9.1 映射的抽象資型態集合9.1.1 以串列為基礎的簡單映射實作9.2 雜湊表9.2.1 水桶陣列9.2.2 雜湊函數9.2.3 雜湊碼9.2.4 壓縮函數9.2.5 衝突處理方案9.2.6 Java雜湊表實作9.2.7 負載因數與再雜湊9.2.8 應用:計算文字的頻率9.3 字典抽象資料型態9.3.1 以串列為基礎的字典與稽核紀錄9.3.2 雜湊表的字典實作9.3.3 有序查詢表與二元搜尋9.4 跳躍串列9.4.1 跳躍串列中的搜尋與更新運算9.4.2 跳躍串列的機率分析9.5 字典的延伸及應用9.5.1 支援定位感知的字典項目9.5.2 有序字典ADT9.5.3 航班資料庫與最大值集合9.6 習題第10章 搜尋樹10.1 二元搜尋樹10.1.1 搜尋10.1.2 更新運算10.1.3 Java實作10.2 AVL樹10.2.1 更新運算10.2.2 Java實作10.3 外張樹10.3.1 外張10.3.2 何時外張10.3.3 外張的攤銷分析10.4 (2.4) 樹10.4.1 多元搜尋樹10.4.2 (2,4) 的更新運算10.5 紅黑樹10.5.1 更新運算10.5.2 Java實作10.6 習題第11章 排序、集合與選擇11.1 合併排序11.1.1 各個擊破11.1.2 合併陣列與串列11.1.3 合併排序的執行時間11.1.4 合併排序的Java實作11.1.5 合併排序與遞迴方程式 11.2 快速排序11.2.1 隨機快速排序11.2.2 原位的快速排序11.3 一個排序的下限11.4 桶子排序與基底排序11.4.1 桶子排序11.4.2 基底排序11.5 排序演算法的比較11.6 集合抽象資料型態與Union/Find結構11.6.1 一個簡單的集合實作11.6.2 尋找聯集運算的分割11.6.3 以樹實作分割11.7 選擇11.7.1 修剪與搜尋11.7.2 隨機快速選擇11.7.3 分析隨機快速選擇11.8 習題第12章 文字處理12.1 字串運算12.1.1 Java的String類別12.1.2 Java的StringBuffer類別12.2 樣式比對演算法12.2.1 暴力法12.2.2 Boyer-Moore演算法12.2.3 Knuth-Morris-Pratt演算法12.3 Trie樹12.3.1 標準Trie樹12.3.2 壓縮Tries12.3.3 字尾Tries12.3.4 搜尋引擎12.4 文字壓縮12.4.1 霍夫曼編碼演算法12.4.2 貪婪演算法12.5 文字相似性測試12.5.1 最長共同子序列問題12.5.2 動態規劃12.5.3 運用動態規劃至LCS問題上12.6 習題第13章 圖13.1 圖的抽象資料型態13.1.1 圖的ADT13.2 圖的資料結構13.2.1 邊串列結構13.2.2 鄰接串列結構13.2.3 鄰接矩陣結構13.3 圖形走訪13.3.1 深度優先搜尋13.3.2 深度優先搜尋的實作13.3.3 廣度優先搜尋13.4 有向圖13.4.1 走訪有向圖13.4.2 遞移包13.4.3 無迴路的有向圖13.5 有權重的圖13.6 最短路徑13.6.1 Dijkstra演算法13.7 最小生成樹13.7.1 Kruskal演算法13.7.2 Prim-Jarnik演算法13.8 習題第14章 記憶體14.1 記憶體管理14.1.1 Java虛擬機器的堆疊結構14.1.2 在記憶體堆積中配置空間14.1.3 資源回收14.2 外部記憶體及快取14.2.1 記憶體階層14.2.2 快取策略14.3 外部搜尋及B-tree14.3.1 (,) 樹14.3.2 B樹14.4 外部記憶體排序14.4.1 多路合併14.5 習題附錄A 常用的數學定理參考文獻