數據抽象和問題求解:Java語言描述

1.1.2類 1.2.1注釋 12.2.1堆

圖書信息

出版社: 清華大學出版社; 第1版 (2007年5月1日)
外文書名: Data Abstraction & Problem Solving with Java WALLS & MIRRORS 2nd Edition
叢書名: 國外經典教材·計算機科學與技術
平裝: 700頁
正文語種: 簡體中文
開本: 16
ISBN: 7302149399, 9787302149392
條形碼: 9787302149392
尺寸: 26 x 18.7 x 2.8 cm
重量: 1.1 Kg

作者簡介

作者:(美國)卡拉諾 (Frank M.Carrano) (美國)普里查德 (Janet J.Prichard) 譯者:郭平 張敏
作者簡介
Frank M.Carrano,Syracuse大學博士畢業,現任Rhode Island大學計算機科學系教授。主要研究方向為數據抽象技術、教育軟體及多媒體技術。曾編寫多本計算機書籍,如tOProblem Solving and DataAbstraction with C++;Walls andMirrors,Intermediate Problem Solving andData Structures:WallsandMirrors等.
Janet J.Prichard,Rhode Island大學博士畢業,現任Bryant大學計算機科學系副教授,具有15年程式設計課程的教學經驗。主要研究方向為實時資料庫與Web技術。
譯者簡介
郭平,湖南大學碩士。一直從事計算機網路與通信、高級程式設計、網路系統安全方面的教學、科研和開發工作;取得多項科研、學術成果,在核心期刊、國際國內會議卜發表論文30餘篇。編著出版教材和譯著5本,獲軍隊科技進步獎勵3項。卡要研究領域為計算機網路系統設計、網路性能分析、Web套用系統。
張敏,華中理工大學碩士,高級網路系統管理員。一直從事計算機網路系統與套用、高級程式設計與網路系統安全等方面的教學、科研和開發工作;取得多項科研,學術成果,在核心期刊、國際閒內會議上發表論文10餘篇。主要研究領域為計算機網路套用系統、網路辦公系統、Web應川系統。

內容簡介

《數據抽象和問題求解-Java語言描述》全面系統地講述了如何利用Java語言解決實際問題,重點剖析了數據結構和數據抽象的核心概念,並通過大量示例向讀者展示了面向對象程式設計理念的精髓。《數據抽象和問題求解-Java語言描述》在第1版的基礎上完善了所有的Java代碼,使用UML處理了所有偽代碼,通過準確的概念講解、貼切的示例和範圍廣泛的問題討論,使老師和學生的教與學都變得輕鬆自如。《數據抽象和問題求解-Java語言描述》能夠使讀者系統地掌握問題求解技術和相關的編程技能,為日後的軟體開發工作打下堅實的基礎。
《數據抽象和問題求解-Java語言描述》表述嚴謹、推理縝密,適合作為計算機及相關專業本科學生的教材,也是一本技術含量很高的專業參考書。

目錄

第I部分問題求解技術
第1章Java編程基礎
1.1程式結構
1.1.1包
1.1.2類
1.1.3數據欄位
1.1.4方法
1.1.5對象成員的訪問方法
1.2Java基礎知識
1.2.1注釋
1.2.2標識符和關鍵字
1.2.3變數
1.2.4基本數據類型
1.2.5引用
1.2.6字面常量
1.2.7命名常量
1.2.8賦值和表達式
1.2.9數組
1.3分支結構
1.3.1if語句
1.3.2switch語句
1.4循環結構
1.4.1while語句
1.4.2for語句
1.4.3do語句
1.5有用的Java類
1.5.1Object類
1.5.2字元串類
1.6Java異常
1.6.1捕獲異常
1.6.2拋出異常
1.7文本輸入和輸出
1.7.1輸入
1.7.2輸出
1.8檔案輸入和輸出
1.8.1文本檔案
1.8.2對象串列化
1.9小結
1.10提示
第2章編程原理與軟體工程
2.1問題求解與軟體工程
2.1.1問題求解的含義
2.1.2軟體的生命周期
2.1.3優秀的解決方案
2.2面向對象設計
2.2.1抽象與信息隱藏
2.2.2面向對象的設計
2.2.3功能分解
2.2.4一般設計原則
2.2.5使用UML為面向對象的設計建模
2.2.6面向對象方式的優點
2.3關鍵編程問題
2.3.1模組化
2.3.2可修改性
2.3.3易用性
2.3.4防故障編程
2.3.5風格
2.3.6調試
2.4小結
2.5提示
2.6自我測試題
2.7練習題
2.8編程問題
第3章遞歸:鏡子
3.1遞歸解決方案
3.1.1遞歸值方法:n的階乘
3.1.2遞歸void方法:逆置字元串
3.2計數
3.2.1兔子繁殖(Fibonacci序列)
3.2.2組織遊行隊伍
3.2.3Spock的困惑
3.3數組查找
3.3.1查找數組的最大項
3.3.2二叉查找
3.3.3查找數組中的第k個最小項
3.4組織數據
3.5遞歸與效率
3.6小結
3.7提示
3.8自我測試題
3.9練習題
3.10編程問題
第4章數據抽象:牆
4.1抽象數據類型
4.2指定ADT
4.2.1ADT列表
4.2.2ADT有序表
4.2.3設計ADT
4.2.4公理(可選)
4.3實現ADT
4.3.1Java類
4.3.2Java接口
4.3.3Java包
4.3.4基於數組的ADT列表的實現
4.4小結
4.5提示
4.6自我測試題
4.7練習題
4.8編程問題
第5章鍊表
5.1預備知識
5.1.1對象引用
5.1.2變長數組
5.1.3基於引用的鍊表
5.2鍊表編程
5.2.1顯示鍊表的內容
5.2.2從鍊表中刪除指定的節點
5.2.3在鍊表的指定位置插入節點
5.2.4ADT列表的基於引用的實現
5.2.5比較基於數組的實現和基於引用的實現
5.2.6將鍊表傳給方法
5.2.7遞歸地處理鍊表
5.3鍊表的各種變體
5.3.1尾引用
5.3.2循環鍊表
5.3.3虛擬頭節點
5.3.4雙向鍊表
5.4清單應用程式
5.5Java集合框架
5.5.1泛型
5.5.2疊代器
5.5.3JCF的List接口
5.6小結
5.7提示
5.8自我測試題
5.9練習題
5.10編程問題
第Ⅱ部分使用抽象數據
類型解決問題
第6章遞歸問題求解技術
6.1回溯
6.2定義語言
6.2.1語法知識基礎
6.2.2兩種簡單語言
6.2.3代數表達式
6.3遞歸和數學歸納法的關係
6.3.1factorial遞歸算法的正確性
6.3.2Hanoi塔的成本
6.4小結
6.5提示
6.6自我測試題
6.7練習題
6.8編程問題
第7章棧
7.1ADT棧
7.2ADT棧的簡單套用
7.2.1檢查括弧匹配
7.2.2識別語言中的字元串
7.3ADT棧的實現
7.3.1ADT棧的基於數組的實現
7.3.2ADT棧的基於引用的實現
7.3.3使用ADT列表的實現
7.3.4各種實現的比較
7.3.5JCF的Stack類
7.4套用:代數表達式
7.4.1計算後綴表達式
7.4.2將中綴表達式轉換為後綴表達式
7.5套用:查找問題
7.5.1使用棧的非遞歸解決方案
7.5.2遞歸解決方案
7.6棧和遞歸的關係
7.7小結
7.8提示
7.9自我測試題
7.10練習題
7.11編程問題
第8章佇列
8.1ADT佇列
8.2ADT佇列的簡單套用
8.2.1讀取字元串
8.2.2識別回文
8.3實現ADT佇列
8.3.1基於引用的實現
8.3.2基於數組的實現
8.3.3使用ADT列表的實現
8.3.4JCF接口Queue
8.3.5比較實現
8.4基於位置的ADT總覽
8.5模擬套用
8.6小結
8.7提示
8.8自我測試題
8.9練習題
8.10編程問題
第9章高級Java主題
9.1繼承
9.1.1Java訪問修飾符
9.1.2is-a和has-a關係
9.2動態綁定和抽象類
9.2.1抽象類
9.2.2Java接口
9.3ADT列表和有序表
9.4Java泛型
9.4.1泛型類
9.4.2泛型通配符
9.4.3泛型類和繼承
9.4.4類List的泛型實現
9.4.5泛型方法
9.5疊代器
9.6小結
9.7提示
9.8自我測試題
9.9練習題
9.10編程問題
第10章算法的效率和排序
10.1確定算法的效率
10.1.1算法的執行時間
10.1.2算法增率
10.1.3數量階分析和大O表示法
10.1.4正確分析問題
10.1.5查找算法的效率
10.2排序算法及其效率
10.2.1選擇排序
10.2.2冒泡排序
10.2.3插入排序
10.2.4歸併排序
10.2.5快速排序
10.2.6基數排序
10.2.7各種排序算法的比較
10.2.8JCF的排序算法
10.3小結
10.4提示
10.5自我測試題
10.6練習題
10.7編程問題
第11章樹
11.1術語
11.2ADT二叉樹
11.2.1ADT二叉樹的基本操作
11.2.2ADT二叉樹的一般操作
11.2.3二叉樹的遍歷
11.2.4二叉樹的表示
11.2.5ADT二叉樹的基於引用的實現
11.2.6使用疊代器遍歷樹
11.3ADT二叉查找樹
11.3.1ADT二叉查找樹操作的算法
11.3.2ADT二叉查找樹的基於引用的實現
11.3.3二叉查找樹操作的效率
11.3.4樹排序
11.3.5將二叉查找樹保存到檔案中
11.3.6JCF的二叉樹查找算法
11.4一般樹
11.5小結
11.6提示
11.7自我測試題
11.8練習題
11.9編程問題
第12章表和優先佇列
12.1ADT表
12.1.1選擇實現
12.1.2ADT表的基於數組的有序實現
12.1.3ADT表的基於二叉查找樹的實現
12.2ADT優先佇列:
ADT表的變體
12.2.1堆
12.2.2ADT優先佇列的堆實現
12.2.3堆排序
12.3JCF中的表和優先佇列
12.3.1JCF的Map接口
12.3.2JCF的Set接口
12.3.3JCF的PriorityQueue類
12.4小結
12.5提示
12.6自我測試題
12.7練習題
12.8編程問題
第13章表的高級實現方案
13.1平衡查找樹
13.1.12-3樹
13.1.22-3-4樹
13.1.3紅-黑樹
13.1.4AVL樹
13.2散列
13.2.1散列函式
13.2.2解決衝突
13.2.3散列效率
13.2.4如何確立散列函式
13.2.5表遍歷:散列的低效操作
13.2.6JCF的Hashtable
TreeMap類
13.2.7Hashtable類
13.2.8TreeMap類
13.3按多種形式組織數據
13.4小結
13.5提示
13.6自我測試題
13.7練習題
13.8編程問題
第14章圖
14.1術語
14.2將圖作為ADT
14.2.1實現圖
14.2.2用JCF實現Graph類
14.3圖的遍歷
14.3.1深度優先查找
14.3.2廣度優先查找
14.3.3用JCF實現BFS疊代器類
14.4圖的套用
14.4.1拓撲排序
14.4.2生成樹
14.4.3最小生成樹
14.4.4最短路徑
14.4.5迴路
14.4.6一些複雜問題
14.5小結
14.6提示
14.7自我測試題
14.8練習題
14.9編程問題
第15章外部方法
15.1了解外部存儲
15.2排序外部檔案的數據
15.3外部表
15.3.1確定外部檔案的索引
15.3.2外部散列
15.3.3B-樹
15.3.4遍歷
15.3.5多索引
15.4小結
15.5提示
15.6自我測試題
15.7練習題
15.8編程練習
附錄AJava與C++的區別
附錄BUnicode字元代碼
附錄CJava資源
附錄D數學歸納法
附錄EJava操作符
附錄F術語表
附錄G自我測試題答案

相關詞條

熱門詞條

聯絡我們