注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計Java面向對象數據結構完全學習教程(典藏中文版 精)

Java面向對象數據結構完全學習教程(典藏中文版 精)

Java面向對象數據結構完全學習教程(典藏中文版 精)

定 價:¥139.00

作 者: [美] 內爾·黛爾,丹尼爾·T·喬伊斯,奇普·威姆斯 著,王金菊,金筆佳 譯
出版社: 中國青年出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787515355252 出版時間: 2019-10-01 包裝: 平裝
開本: 16k 頁數: 字數:  

內容簡介

  本書主要介紹傳統(tǒng)的和現代的數據結構方面的知識,重點介紹問題的解決和軟件的設計。從基礎知識開始并貫穿全書,介紹并擴展了許多Java功能的應用,如類、對象、泛型、多態(tài)、包、接口、庫中的類、繼承、異常和線程等。我們還在整個講解過程中使用統(tǒng)一建模語言(UML)類圖來幫助建模并可視化對象、類、接口、應用程序及其相互關系。 Chapter 1 關于基礎知識的整理。綜述面向對象,強調了組織對象和類的機制。 Chapter 2 介紹了抽象數據類型棧(Stack),引入了抽象數據類型(abstract data type,ADT)的概念。 Chapter 3 討論了遞歸(Recursion),演示了如何使用遞歸解決編程問題。 Chapter 4 介紹了抽象數據類型隊列(Queue)。 Chapter 5 對抽象數據類型集合進行了定義。 Chapter 6 介紹了一個更具體的抽象數據類型—集合。 Chapter 7 介紹了二叉搜索樹抽象數據類型。 Chapter 8 講了映射(Map)抽象數據類型,映射抽象數據類型也叫符號表、字典或關聯(lián)數組。 Chapter 9 介紹了優(yōu)先級隊列抽象數據類型,它與隊列密切相關,但具有不同的訪問協(xié)議。 Chapter 10 講了圖(Graph)抽象數據類型,包括實現方法和數種有關圖的重要算法(深度優(yōu)先搜索、廣度優(yōu)先搜索、路徑存在與否、Z短路徑和連通分量)。 Chapter 11 介紹/回顧了一些排序和查找算法。

作者簡介

  [ 美]內爾·黛爾 Nell Dale 得克薩斯大學奧斯汀分校計算機科學博士。她自 1975 年以來,一直在得克薩斯大學奧斯汀分校任教,同時專注于計算機科學教育、寫作。出版或參與出版過的專著有《Computer Science Illuminated》《Programming and Problem Solving withC++: Brief Edition》《C++ Plus Data Structures》等。 [ 美]奇普·威姆斯 Chip Weems 美國馬薩諸塞大學阿默斯特分校計算機科學專業(yè)副教授。在過去的 20 多年中,他教授了入門編程、軟件工程、計算機體系結構和并行處理等課程。自 1986 年以來,他與其他人合作編寫了 13 本教科書,幫助 100 多萬學生學習計算機編程。他的書已被譯成法語、西班牙語和俄語?,F在,他從事計算機體系結構、編譯器、并行處理和編譯器體系結構協(xié)同優(yōu)化方面的研 究。出版或參與出版的專著有《Turbo Pascal》《Programmingand Problem Solving with C++》《Programming inC++》《C++ Plus Data Structures》等。 [ 美]丹尼爾·T·喬伊斯 Daniel T. Joyce 美國維拉諾瓦大學計算機科學系的副教授。喬伊斯的研究興趣是軟件工程,重點是軟件需求識別。此外,他還活躍于計算機科學教育界。??

圖書目錄

Chapter 1? 知識整理
1.1? 類、對象和應用程序?
類?
統(tǒng)一方法?
對象?
應用程序?
1.2? 組織類?
繼承?
包?
1.3? 異常?
處理異常狀況?
異常與類:實例?
1.4? 數據結構?
非獨立實現的結構?
獨立實現結構?
數據結構的含義??
1.5? 基本結構化機制?
內存?
引用?
數組?
1.6? 算法比較:增長階分析?
測算法的時間效率?
情況復雜度?
輸入值的大小?
算法比較? 66
增長順序? 68
選擇排序算法? 69
常見的增長階? 72
? 小結? 73
? 習題? 74

Chapter 2? 抽象數據類型—棧?
2.1? 抽象?
信息隱藏?
數據抽象?
數據層次?
前置條件和后置條件?
Java接口?
基于接口的多態(tài)性?
2.2? 棧?
棧的操作?
棧的用法?
2.3? 集合元素?
常用集合?
2.4? 棧接口?
異常情況?
接口?
應用實例?
2.5? 基于數組的棧實現?
ArrayBoundedstack類?
棧操作的定義?
ArrayListStack類?
2.6? 應用程序:平衡表達式?
平衡類?
應用程序?
軟件架構?
2.7? 鏈表?
數組與鏈表?
LLNode類?
鏈表操作?
2.8? 基于鏈接的棧?
LinkedStack類?
壓棧操作?
彈棧操作?
其他棧操作?
比較棧的實現方式?
2.9? 應用程序:后綴表達式評估器
討論?
后綴表達式求值?
后綴表達式求值算法?
錯誤處理?
PostFixEvaluator類?
PFixCLI類?
2.10? 棧變體?
重新審視棧抽象數據類型?
Java棧類和集合框架?
? 小結?
? 習題?

Chapter 3? 遞歸?
3.1? 遞歸定義、算法和程序?
遞歸定義
遞歸計算?
遞歸程序?
階乘的迭代解決方案?
3.2? 三個問題?
驗證遞歸算法?
確定輸入限制?
編寫遞歸方法?
調試遞歸方法?
3.3? 數組的遞歸處理?
二分查找?
3.4? 鏈表的遞歸處理?
鏈表的遞歸性質
鏈表遍歷?
鏈表轉換?
3.5? 塔?
算法?
方法?
程序?
3.6? 分形?
丁字方形的分形?
變體?
3.7? 移除遞歸?
遞歸的工作原理?
尾調用消除?
直接使用棧?
3.8? 何時使用遞歸解決方案?
遞歸開銷?
低效算法?
清晰度?
? 小結?
? 習題?
Chapter 4? 抽象數據類型—隊列?
4.1? 隊列?
隊列操作?
使用隊列?
4.2? 隊列接口?
應用實例?
4.3? 基于數組的隊列實現?
ArrayBoundedQueue類?
ArrayUnboundedQueue類?
4.4? 交互式測試驅動程序?
一般方法?
ArrayBoundedQueue類的測試驅動?
使用測試驅動程序?
4.5? 基于鏈接的隊列實現?
入隊操作?
出隊操作
循環(huán)鏈表隊列設計?
比較隊列實現?
4.6? 應用程序:回文?
回文類?
應用程序?
4.7? 隊列變體
特殊情況?
玻璃隊列?
雙端隊列?
雙向鏈表?
Java庫集合框架隊列/雙端隊列?
4.8? 應用程序:平均等待時間?
問題討論和示例?
Customer類?
模擬?
測試?
4.9? 并發(fā)、干擾和同步?
Counter類?
Java線程?
干擾?
同步?
同步隊列?
并發(fā)與Java庫集合類?
? 小結?
? 習題?

Chapter 5? 抽象數據類型—集合?
5.1? 集合接口?
集合的前提?
接口?
5.2? 實現基于數組的集合?
5.3? 應用程序:詞匯密度?
5.4? 重新探討比較對象?
函數equals?
Comparable接口?
5.5? 基于排序數組的集合的實現?
參比元素?
實現?
以“拷貝”或“引用”的方式實現抽象數據類型?
示例程序?
5.6? 基于鏈接的集合的實現?
內部表示形式
運算?
比較集合實現?
5.7? 集合變體
Java集合框架?
Bag?ADT?
Set?ADT?
? 小結?
? 習題?

Chapter 6? 抽象數據類型—列表?
6.1? 列表接口?
迭代?
列表假設?
接口
6.2? 列表實現?
基于數組的實現?
基于鏈表的實現?
6.3? 應用程序:紙牌和游戲?
Card類?
CardDeck類?
應用程序:排列Card?Hand?
應用程序:Higher?or?Lower?
應用程序:一對牌有多罕見?
6.4? 基于數組的有序列表的實現?
插入排序?
不支持的操作?
Comparator接口?
構造函數?
應用實例?
6.5? 列表變體?
Java庫列表?
鏈表變體?
鏈表作為節(jié)點數組?
6.6? 應用程序:大整數
大整數?
內部表示?
LargeIntList類
LargeInt類
加法和減法
LargeIntCLI程序?
? 小結?
? 習題?

Chapter 7? 抽象數據類型—二叉搜索樹?
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
平衡搜索樹?
? 小結?
? 習題?

Chapter 8? 抽象數據類型—Map?
8.1? Map接口?
8.2? Map的實現?
無序數組?
有序數組?
無序鏈表?
有序鏈表?
二叉搜索樹?
以基于ArrayList的方式實現?
8.3? 應用程序:從字符串到字符串的Map?
8.4? 哈希法?
沖突
8.5? 哈希函數?
數組大小?
哈希函數?
Java對哈希的支持?
復雜度?
8.6? 基于哈希的Map?
實現?
使用HMap類?
8.7? Map的變體?
混合結構?
Java對Map的支持?
? 小結?
? 習題?

Chapter 9? 抽象數據類型—優(yōu)先級隊列?
9.1? 優(yōu)先級隊列接口?
使用優(yōu)先級隊列?
接口?
9.2? 優(yōu)先級隊列的實現?
無序數組?
有序數組?
有序鏈表?
二叉搜索樹?
9.3? 堆?
9.4? 堆的實現?
二叉樹的非鏈接表示?
實現堆?
Enqueue(入隊)方法?
Dequeue(出隊)方法?
應用實例?
堆VS優(yōu)先級隊列的其他表示?
? 小結?
? 習題?

Chapter 10? 抽象數據類型—圖?
10.1? 圖的介紹?
10.2? 圖的接口?
10.3? 圖的實現?
基于數組的實現?
鏈接實現
10.4? 應用程序:圖的遍歷?
深度優(yōu)先搜索?
廣度優(yōu)先搜索?
10.5? 應用程序:單源最短路徑問題?
? 小結?
? 習題
Chapter 11? 排序和查找算法?
11.1? 排序?
測試工具?
11.2? 簡單排序?
選擇排序?
冒泡排序?
插入排序
11.3? O(Nlog2N?)排序
合并排序
快速排序?
堆排序?
11.4? 更多的排序思考?
測試?
效率?
對象和引用?
比較對象?
穩(wěn)定性
11.5? 查找?
順序查找?
高概率排序?
有序集合?
哈希法?
? 小結?
? 習題?
? ?
附錄A?
? 附錄B?
? 附錄C?
? 附錄D?
? 術語表?
? 索引

本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號