JAVA面向對像數據結構完全學習教程 典藏中文版
作 者: (美)內爾·黛爾(Nell Dale),(美)丹尼爾·T·喬伊斯(Daniel T.Joyce),(美)奇普·威姆斯(Chip Weems) 著 王金菊,金筆佳文 譯
定 價: 139
出?版?社: 中國青年出版社
出版日期: 2019年10月01日
頁 數: 704
裝 幀: 精裝
ISBN: 9787515355252
●Chapter1知識整理
1.1類、對像和應用程序
類
統一方法
對像
應用程序
1.2組織類
繼承
包
1.3異常
處理異常狀況
異常與類:實例
1.4數據結構
非獨立實現的結構
獨立實現結構
數據結構的含義?
1.5基本結構化機制
內存
引用
數組
1.6算法比較:增長階分析
測算法的時間效率
情況復雜度
輸入值的大小
算法比較66
增長順序68
選擇排序算法69
常見的增長階72
小結73
習題74
Chapter2抽像數據類型—棧
2.1抽像
信息隱藏
數據抽像
數據層次
前置條件和後置條件
Java接口
基於接口的多態性
2.2棧
棧的操作
棧的用法
2.素
常用集合
2.4棧接口
異常情況
接口
應用實例
2.5基於數組的棧實現
ArrayBoundedstack類
棧操作的定義
ArrayListStack類
2.6應用程序:平衡表達式
平衡類
應用程序
軟件架構
2.7鏈表
數組與鏈表
LLNode類
鏈表操作
2.8基於鏈接的棧
LinkedStack類
壓棧操作
彈棧操作
其他棧操作
比較棧的實現方式
2.9應用程序:後綴表達式評估器
討論
後綴表達式求值
後綴表達式求值算法
錯誤處理
PostFixEvaluator類
PFixCLI類
2.10棧變體
重新審視棧抽像數據類型
Java棧類和集合框架
小結
習題
Chapter3遞歸
3.1遞歸定義、算法和程序
遞歸定義
遞歸計算
遞歸程序
階乘的迭代解決方案
3.2三個問題
驗證遞歸算法
確定輸入限制
編寫遞歸方法
調試遞歸方法
3.3數組的遞歸處理
二分查找
3.4鏈表的遞歸處理
鏈表的遞歸性質
鏈表遍歷
鏈表轉換
3.5塔
算法
方法
程序
3.6分形
丁字方形的分形
變體
3.7移除遞歸
遞歸的工作原理
尾調用消除
直接使用棧
3.8何時使用遞歸解決方案
遞歸開銷
低效算法
清晰度
小結
習題
Chapter4抽像數據類型—隊列
4.1隊列
隊列操作
使用隊列
4.2隊列接口
應用實例
4.3基於數組的隊列實現
ArrayBoundedQueue類
ArrayUnboundedQueue類
4.4交互式測試驅動程序
一般方法
ArrayBoundedQueue類的測試驅動
使用測試驅動程序
4.5基於鏈接的隊列實現
入隊操作
出隊操作
循環鏈表隊列設計
比較隊列實現
4.6應用程序:回文
回文類
應用程序
4.7隊列變體
特殊情況
玻璃隊列
雙端隊列
雙向鏈表
Java庫集合框架隊列/雙端隊列
4.8應用程序:平均等待時間
問題討論和示例
Customer類
模擬
測試
4.9並發、干擾和同步
Counter類
Java線程
干擾
同步
同步隊列
並發與Java庫集合類
小結
習題
Chapter5抽像數據類型—集合
5.1集合接口
集合的前提
接口
5.2實現基於數組的集合
5.3應用程序:詞彙密度
5.4重新探討比較對像
函數equals
Comparable接口
5.5基於排序數組的集合的實現
素
實現
以“拷貝”或“引用”的方式實現抽像數據類型
示例程序
5.6基於鏈接的集合的實現
內部表示形式
運算
比較集合實現
5.7集合變體
Java集合框架
BagADT
SetADT
小結
習題
Chapter6抽像數據類型—列表
6.1列表接口
迭代
列表假設
接口
6.2列表實現
基於數組的實現
基於鏈表的實現
6.3應用程序:紙牌和遊戲
Card類
CardDeck類
應用程序:排列CardHand
應用程序:HigherorLower
應用程序:一對牌有多罕見
6.4基於數組的有序列表的實現
插入排序
不支持的操作
Comparator接口
構造函數
應用實例
6.5列表變體
Java庫列表
鏈表變體
鏈表作為節點數組
6.6應用程序:大整數
大整數
內部表示
LargeIntList類
LargeInt類
加法和減法
LargeIntCLI程序
小結
習題
Chapter7抽像數據類型—二叉搜索樹
7.1樹
樹的遍歷
7.2二叉搜索樹
二叉樹
二叉搜索樹
二叉樹遍歷
7.3二叉搜索樹接口
接口449
7.4實現層級:基礎級
7.5迭代法VS遞歸法的實現
size函數的遞歸法
size函數的迭代法
遞歸還是迭代
7.6實現層級:剩餘的觀察函數
contains和get函數
遍歷
7.7實現層級:轉換函數
add操作
remove操作
7.8二叉搜索樹的功能
重新討論文本分析實驗
插入順序和樹形
平衡二叉搜索樹
7.9應用程序:詞頻計數器
類WordFreq
應用程序
7.10樹的變體
特定應用的變體4
平衡搜索樹
小結
習題
Chapter8抽像數據類型—Map
8.1Map接口
8.2Map的實現
無序數組
有序數組
無序鏈表
有序鏈表
二叉搜索樹
以基於ArrayList的方式實現
8.3應用程序:從字符串到字符串的Map
8.4哈希法
衝突
8.5哈希函數
數組大小
哈希函數
Java對哈希的支持
復雜度
8.6基於哈希的Map
實現
使用HMap類
8.7Map的變體
混合結構
Java對Map的支持
小結
習題
Chapter9抽像數據類型—優先級隊列
9.1優先級隊列接口
使用優先級隊列
接口
9.2優先級隊列的實現
無序數組
有序數組
有序鏈表
二叉搜索樹
9.3堆
9.4堆的實現
二叉樹的非鏈接表示
實現堆
Enqueue(入隊)方法
Dequeue(出隊)方法
應用實例
堆VS優先級隊列的其他表示
小結
習題
Chapter10抽像數據類型—圖
10.1圖的介紹
10.2圖的接口
10.3圖的實現
基於數組的實現
鏈接實現
10.4應用程序:圖的遍歷
深度優先搜索
廣度優先搜索
10.5應用程序:單源最短路徑問題
小結
習題
Chapter11排序和查找算法
11.1排序
測試工具
11.2簡單排序
選擇排序
冒泡排序
插入排序
11.3O(Nlog2N)排序
合並排序
快速排序
堆排序
11.4更多的排序思考
測試
效率
對像和引用
比較對像
穩定性
11.5查找
順序查找
高概率排序
有序集合
哈希法
小結
習題
附錄A
附錄B
附錄C
附錄D
術語表
索引
內容簡介
本書主要介紹傳統的和現代的數據結構方面的知識,重點介紹問題的解決和軟件的設計。從基礎知識開始並貫穿全書,介紹並擴展了許多Java功能的應用,如類、對像、泛型、多態、包、接口、庫中的類、繼承、異常和線程等。我們還在整個講解過程中使用統一建模語言(UML)類圖來幫助建模並可視化對像、類、接口、應用程序及其相互關繫。
Chapter1關於基礎知識的整理。綜述面向對像,強調了組織對像和類的機制。Chapter2介紹了抽像數據類型找(Stack),引入了抽像數據類型(abstractdatatype,ADT)的概念。Chapter3討論了遞(Recursion),演示了如何使用遞歸解決編程問題。Chapter4介紹了抽像數據類型隊列(Queue)。Chapter5對抽像數據類型集合進行了定義。Chapter6介紹了一個更具體的抽像數據類型—集合。Chapter7介紹了二叉搜索樹抽像數據類......