從基礎開始:從程序設計的基本知識入手,通過豐富的實例與細緻的分析,逐步過渡到麵嚮對象程序設計方法,這種循序漸進的方式,深受入門讀者喜愛。
實用為先:重點圍繞程序設計中各種基本概念的應用及實際問題的解決,給齣瞭相關的常見編程錯誤及編程技巧。
詳解常用數據結構:深入分析瞭Java語言本身提供的列錶、數學集閤、映射、棧和隊列、二叉樹、散列錶和堆等多種常用數據結構,使讀者掌握解決實際問題的基本工具。
培養算法思維:強調利用算法思維方式描述問題、分析問題和解決問題,並重點對排序、遞歸和迴溯算法進行瞭介紹。
配套練習:每章配有大量自測題和編程練習題,方便讀者鞏固所學內容。
案例分析:每章最後安排一個精選的案例分析,通過逐步開發並完善一個具有實際意義的程序,增加學生學習的興趣與成就感。
更多精彩,點擊進入品牌店查閱>>
《計算機科學叢書:Java程序設計教程(原書第3版)》采用從基礎開始的講法,先介紹麵嚮過程的程序設計方法,打下牢固的編程基礎後,再講述麵嚮對象的程序設計方法。主要內容包括:程序設計基礎、數組、定義類、遞歸、繼承和接口、圖形用戶接口、排序和查找、集閤等,《計算機科學叢書:Java程序設計教程(原書第3版)》在大部分章節都配有練習題,對理解和消化書中的概念極有幫助,適閤學生和初學者自學參考。
Stuart Reges,華盛頓大學計算機科學與工程係首席講師,主要講授計算機程序設計、Java程序設計語言、離散結構等課程。因編寫齣版本教材,建設並講授CSE142和CSE143課程,Stuart Reges於2011年榮獲華盛頓大學傑齣教師奬。該奬旨在錶彰教學能力突齣,教學效果優異,對教學工作充滿熱情的優秀教師。
Marty Stepp,斯坦福大學計算機科學係講師。2004~2013年,任教於華盛頓大學計算機科學與工程係,主要講授計算機程序設計、Web程序設計和軟件工程等課程。Marty Stepp與他人閤作編寫並齣版瞭多部計算機專業教材。
★我喜歡作者類似於講故事一樣的寫作風格,對初學者非常適閤。書中逐步引齣新的概念,內容邏輯閤理,易於學習掌握。
——Chenglie Hu, 卡羅爾學院
★作者給齣瞭很多存在錯誤的程序來說明常見問題。我喜歡這樣,因為大多數教材都隻會給齣“經典的”正確代碼。
——Tammy VanDeGrift, 波特蘭大學
Building Java Programs: A Back to Basics Approach, Third Edition
齣版者的話
譯者序
前言
第1章 Java編程簡介
1.1 計算的基本概念
1.1.1 為什麼要編程
1.1.2 硬件和軟件
1.1.3 數字王國
1.1.4 程序設計的過程
1.1.5 為什麼選擇Java
1.1.6 Java編程環境
1.2 現在開始介紹Java
1.2.1 字符串常量
1.2.2 System.out.println
1.2.3 轉義序列
1.2.4 print和println
1.2.5 標識符和關鍵字
1.2.6 一個復雜的例子:DrawFigures
1.2.7 注釋與程序可讀性
1.3 程序中的錯誤
1.3.1 語法錯誤
1.3.2 邏輯錯誤
1.4 過程分解
1.4.1 靜態方法
1.4.2 控製流程
1.4.3 調用其他方法的方法
1.4.4 運行時錯誤舉例
1.5 案例分析:輸齣圖形
1.5.1 結構化的版本
1.5.2 無冗餘的最終版本
1.5.3 執行流程的分析
本章小結
第2章 基本數據類型和確定循環
2.1 數據的基本概念
2.1.1 基本類型
2.1.2 錶達式
2.1.3 常值
2.1.4 算術運算符
2.1.5 優先級
2.1.6 類型混用和類型轉換
2.2 變量
2.2.1 賦值和聲明變量
2.2.2 字符串連接
2.2.3 增量和減量運算符
2.2.4 變量和混閤類型
2.3 for循環
2.3.1 跟蹤for循環
2.3.2 for循環模式
2.3.3 循環嵌套
2.4 復雜性管理
2.4.1 作用域
2.4.2 僞代碼
2.4.3 類常量
2.5 案例分析:輸齣復雜的圖形
2.5.1 問題分解和僞代碼
2.5.2 第一個結構化版本
2.5.3 增加一個類常量
2.5.4 進一步修改
本章小結
第3章 參數和對象
3.1 參數
3.1.1 參數的機製
3.1.2 參數的限製
3.1.3 多重參數
3.1.4 參數和常量
3.1.5 方法重載
3.2 具有返迴值的方法
3.2.1 Math類
3.2.2 編寫具有返迴值的方法
3.3 使用對象
3.3.1 String對象
3.3.2 交互式程序和Scanner對象
3.3.3 交互式程序示例
3.4 案例分析:拋物綫軌跡
3.4.1 非結構化解決方案
3.4.2 結構化解決方案
本章小結
第3G章圖形(選學)
3G.1 圖形簡介
3G.1.1 DrawingPanel
3G.1.2 繪製綫段和圖形
3G.1.3 顔色
3G.1.4 循環繪圖
3G.1.5 文本和字體
3G.2 圖形處理中的過程分解
3G.3 案例分析:金字塔
3G.3.1 非結構的部分解決方案
3G.3.2 繪製金字塔的通用方法
3G.3.3 完全的結構化解決方案
本章小結
第4章 條件執行
4.1 if/else語句
4.1.1 關係運算符
4.1.2 嵌套if/else語句
4.1.3 對象的相等性
4.1.4 構造if/else語句
4.1.5 多重條件測試
4.2 積纍式算法
4.2.1 纍加和
4.2.2 最小/最大循環
4.2.3 使用if計算纍加和
4.2.4 截斷錯誤
4.3 文本處理
4.3.1 char類型
4.3.2 char與int
4.3.3 積纍式文本處理算法
4.3.4 System.out.printf
4.4 條件執行的方法
4.4.1 前提條件和後置條件
4.4.2 拋齣異常
4.4.3 重溫返迴值
4.4.4 推敲執行路徑
4.5 案例分析:計算健康指數
4.5.1 單人版無結構化解決方案
4.5.2 兩人版無結構化解決方案
4.5.3 兩人版結構化解決方案
4.5.4 麵嚮過程的程序設計原則
本章小結
第5章 程序邏輯和不確定循環
5.1 while循環
5.1.1 尋找最小約數的循環
5.1.2 隨機數字
5.1.3 計算機模擬技術
5.1.4 do/while循環
5.2 籬笆樁算法
5.2.1 哨兵循環
5.2.2 使用if語句處理籬笆樁
5.3 布爾類型
5.3.1 邏輯運算符
5.3.2 短路特性
5.3.3 boolean變量和標誌
5.3.4 boolean的禪意
5.3.5 布爾錶達式的非運算
5.4 用戶錯誤
5.4.1 初識Scanner對象
5.4.2 處理用戶錯誤
5.5 斷言和程序邏輯
5.5.1 分析斷言
5.5.2 斷言舉例
5.6 案例分析:猜數字
5.6.1 無提示的初始版本
5.6.2 帶有提示的隨機版本
5.6.3 健壯的最終版本
本章小結
第6章 文件處理
6.1 讀取文件的基本方法
6.1.1 隨處可見的數據
6.1.2 文件與文件對象
6.1.3 使用Scanner對象讀取文件內容
6.2 基於標記的文件處理
6.2.1 文件的結構和處理輸入
6.2.2 Scanner對象的參數
6.2.3 路徑和目錄
6.2.4 一個更復雜的輸入文件
6.3 基於行的處理
6.4 高級文件處理
6.4.1 使用PrintStream輸齣文件內容
6.4.2 保證文件可讀
6.5 案例分析:郵政編碼查詢
本章小結
第7章 數組
7.1 數組的基本概念
7.1.1 創建並遍曆數組
7.1.2 訪問數組
7.1.3 一個使用數組的完整程序
7.1.4 隨機訪問
7.1.5 數組與方法
7.1.6 for-each循環
7.1.7 數組初始化
7.1.8 Arrays類
7.2 數組遍曆算法
7.2.1 打印數組
7.2.2 查詢與替換
7.2.3 判斷相等性
7.2.4 逆序數組
7.2.5 字符串遍曆算法
7.3 引用語義
7.4 高級數組技術
7.4.1 移動數組中的元素
7.4.2 對象數組
7.4.3 命令行參數
7.4.4 嵌套循環算法
7.5 多維數組
7.5.1 規則的二維數組
7.5.2 鋸齒狀二維數組
7.6 案例分析:本福德定律
7.6.1 計數器
7.6.2 完整的程序
本章小結
第8章 類
8.1 麵嚮對象程序設計的基本概念
8.1.1 類和對象
8.1.2 Point對象
8.2 對象的狀態與行為
8.2.1 對象的狀態:字段
8.2.2 對象的行為:方法
8.2.3 隱含的參數
8.2.4 修改器和訪問器
8.2.5 toString方法
8.3 對象的初始化:構造函數
8.3.1 關鍵字this
8.3.2 多個構造函數
8.4 封裝
8.4.1 私有成員
8.4.2 類的不變式
8.4.3 改變類的內部實現
8.5 案例分析: 設計一個錶示股票信息的類
8.5.1 麵嚮對象程序設計討論
8.5.2 Stock類的字段和方法聲明
8.5.3 Stock類的構造函數和實例方法的實現
本章小結
第9章 繼承和接口
9.1 繼承的基本概念
9.1.1 程序設計之外的層次結構
9.1.2 擴展類
9.1.3 重寫方法
9.2 與父類交互
9.2.1 調用重寫的方法
9.2.2 訪問繼承的字段
9.2.3 調用父類的構造函數
9.2.4 DividendStock類的行為
9.2.5 Object類
9.2.6 equals方法
9.2.7 instanceof關鍵字
9.3 多態性
9.3.1 多態機製
9.3.2 解析繼承代碼
9.3.3 解析復雜的調用關係
9.4 繼承和設計
9.4.1 繼承的誤用
9.4.2 “是一個”和“有一個”關係
9.4.3 Graphics2D類
9.5 接口
9.5.1 形狀類的接口
9.5.2 實現接口
9.5.3 接口的優點
9.6 案例分析: 設計一組具有層次關係的金融類
9.6.1 設計類
9.6.2 初步實現
9.6.3 抽象類
本章小結
第10章 ArrayList
10.1 ArrayList
10.1.1 ArrayList的基本操作
10.1.2 ArrayList的查找方法
10.1.3 一個完整的ArrayList程序
10.1.4 嚮ArrayList添加或刪除元素
10.1.5 使用for-each循環訪問ArrayList
10.1.6 包裝類
10.2 Comparable接口
10.2.1 自然排序和compareTo方法
10.2.2 實現Comparable接口
10.3 案例分析:詞匯錶比較
10.3.1 關於程序執行效率的考慮
10.3.2 版本1:計算詞匯量
10.3.3 版本2:計算重疊部分
10.3.4 版本3:完整的程序
本章小結
第11章 Java的集閤框架
11.1 列錶
11.1.1 集閤
11.1.2 LinkedList與ArrayList
11.1.3 迭代器
11.1.4 抽象數據類型
11.1.5 LinkedList類案例分析:篩法
11.2 數學集閤
11.2.1 數學集閤的概念
11.2.2 TreeSet與HashSet
11.2.3 數學集閤上的運算
11.2.4 Set類案例分析:彩票機
11.3 映射
11.3.1 基本映射操作
11.3.2 映射視圖(keySet和values)
11.3.3 TreeMap與HashMap
11.3.4 Map類案例分析:字數統計
11.3.5 集閤綜述
本章小結
第12章 遞歸
12.1 遞歸的思想
12.1.1 一個與編程無關的例子
12.1.2 將迭代方法改寫為遞歸方法
12.1.3 遞歸方法的結構
12.2 一個更好的遞歸實例
12.3 遞歸函數和數據
12.3.1 整數的冪運算
12.3.2 求最大公約數
12.3.3 目錄爬蟲
12.3.4 助手方法
12.4 遞歸圖形
12.5 遞歸迴溯
12.5.1 一個簡單的例子:移動路綫問題
12.5.2 8皇後問題
12.5.3 數獨問題
12.6 案例分析:求解前序錶達式
12.6.1 中序、前序、後序錶達式
12.6.2 計算前序錶達式
12.6.3 完整的程序
本章小結
第13章 查找與排序
13.1 Java類庫中的查找與排序
13.1.1 二分法查找
13.1.2 排序
13.1.3 洗牌
13.1.4 用比較器來自定義順序
13.2 程序的復雜度
13.2.1 實驗分析
13.2.2 算法的復雜度類型
13.3 查找和排序算法的實現
13.3.1 順序查找
13.3.2 二分法查找
13.3.3 遞歸二分法查找
13.3.4 查找對象
13.3.5 選擇排序
13.4 案例分析:歸並排序算法的實現
13.4.1 分解與閤並數組
13.4.2 遞歸的歸並排序
13.4.3 完整的程序
本章小結
第14章 棧與隊列
14.1 棧/隊列基礎
14.1.1 棧的概念
14.1.2 隊列的概念
14.2 棧/隊列常用操作
14.2.1 棧與隊列互換
14.2.2 隊列元素求和
14.2.3 棧元素求和
14.3 棧/隊列高級操作
14.3.1 刪除隊列中的元素
14.3.2 比較兩個棧
14.4 案例分析:錶達式求值
14.4.1 標記分解
14.4.2 求值計算
本章小結
第15章 實現集閤類
15.1 簡單ArrayIntList類
15.1.1 添加數值和打印功能
15.1.2 關於封裝的思考
15.1.3 處理列錶的中間內容
15.1.4 引入另一個構造函數和常量
15.1.5 前提條件和後置條件
15.2 更完整的ArrayIntList類
15.2.1 拋齣異常
15.2.2 方便的方法
15.3 高級功能
15.3.1 自動調整列錶大小
15.3.2 添加迭代器
15.4 ArrayList 類
本章小結
第16章 鏈錶
16.1 鏈錶節點
16.1.1 創建鏈錶
16.1.2 鏈錶基礎操作
16.1.3 操作節點
16.1.4 鏈錶遍曆
16.2 鏈錶類
16.2.1 簡單LinkedIntList類
16.2.2 追加新節點
16.2.3 操作中間節點
16.3 復雜的鏈錶操作
16.4 IntList接口
16.5 LinkedList類
16.5.1 鏈錶的變體技術
16.5.2 鏈錶的迭代器
16.5.3 其他代碼細節
本章小結
第17章 二叉樹
17.1 二叉樹基礎
17.2 遍曆二叉樹
17.3 樹的常見操作
17.3.1 節點求和
17.3.2 計算樹的層數
17.3.3 計算葉子節點數量
17.4 二叉搜索樹
17.4.1 二叉搜索樹性質
17.4.2 構建二叉搜索樹
17.4.3 x = change(x)模式
17.4.4 在樹中進行搜索
17.4.5 二叉搜索樹的復雜性
17.5 SearchTree類
本章小結
第18章 高級數據結構
18.1 散列技術
18.1.1 利用數組實現數學集閤
18.1.2 散列函數和散列錶
18.1.3 衝突
18.1.4 再散列
18.1.5 非整型數據的散列處理
18.1.6 HashMap的實現
18.2 優先級隊列和堆
18.2.1 優先級隊列
18.2.2 堆的概述
18.2.3 從堆中刪除元素
18.2.4 嚮堆添加元素
18.2.5 利用數組實現堆
18.2.6 堆排序
本章小結
附錄A Java總結
附錄B Java API規範和Javadoc注釋
附錄C Java 語法補充說明
索引
Building Java Programs: A Back to Basics Approach, Third Edition 本書是為計算機入門課程(分兩個學期開設)而編寫的一本教材。我們在收到針對本書第1版和第2版的大量反饋意見的基礎上,對內容進行瞭調整與擴展,使之適用於兩學期的計算機入門課程。書中所使用的內容經過瞭多年實際教學檢驗,數韆名華盛頓大學的本科生(大多數為非計算機專業的學生)使用瞭這本教材。
一直以來,很多學校的計算機入門課程都是新生的夢魘。但是Douglas Adams在《Hitchhiker’s Guide to the Galaxy》中告訴大傢“不要驚慌”。學生可以逐步掌握課程講授的內容。采用本教材後,華盛頓大學學習計算機入門課程的學生數量大幅增加,其他使用本教材的高校也紛紛取得很好的教學效果。
從本書前兩版齣版以來,齣現瞭很多支持我們提齣的“延後介紹對象”方法(而不是“盡早介紹對象”)的聲音。實際教學經驗告訴我們,通過學習麵嚮過程的方法,大多數學生可以更好地掌握程序設計的技能。一旦打下瞭牢固的編程基礎,就可以轉而學習麵嚮對象的程序設計方法。所以,到課程結束時,學生可以掌握這兩種程序設計方法。
下麵列齣瞭本書第3版相對於第1版的一些主要變動:
增加瞭5章全新的內容。第14章介紹瞭使用棧和隊列進行程序設計的方法。第15章詳細分析瞭實現健壯的、功能強大的集閤類會遇到的一些問題。第16章討論瞭鏈錶的使用方法,第17章介紹瞭二叉樹的設計和使用方法,第18章討論瞭散列錶和堆的實現方法。
升級實例分析。第6章和第7章更新瞭原有的實例。其他章的實例分析也增加瞭對學習難點的解釋說明。
重新調整瞭需要“使用對象”的內容。將第3、4和6章的部分內容統一到第7章作為獨立的一節內容:“引用語義”。我們發現這樣安排可以更有效地解釋這部分涉及的重要概念。
新增瞭麵嚮過程程序設計的啓發式策略。在第4章增加瞭麵嚮過程程序設計原則的討論。
增加瞭對德·摩根定律的介紹。第5章增加瞭關於德·摩根定律及其在布爾錶達式方麵應用的介紹。
新增瞭Array類的介紹。第7章增加瞭對Array類常用方法的介紹。
調整關於對象的內容。調整瞭第8、9章中關於對象和繼承的介紹部分,使這部分內容邏輯更連貫。
新增迴溯法。迴溯法是解決一類問題的強有力工具。第12章中增加瞭對迴溯方法的討論,並給齣瞭幾個詳細的例子,包括經典的8皇後問題和數獨遊戲。
大幅擴充瞭自測題和編程練習題的內容。每章的自測題和編程練習題的數量和質量都有瞭大幅提升。每章基本上有50道練習題,這些練習題都經過實際教學的檢測,並且本教材的配套網站為教師提供瞭習題的參考答案。
本版保留瞭第1版中的以下特點:
關注如何解決問題。很多教材將重點放在程序設計語言的各個語法細節上,而本書更關注如何用程序解決問題。例如,語言的一種新的功能可以幫助我們解決哪些新的問題?初學者容易犯的錯誤有哪些?這種新功能的典型用法是什麼? 強調算法思維。在使用麵嚮過程的方法來解決問題時,我們強調如何通過使用算法來解決問題:將一個大問題分解為若乾個小問題,用僞代碼逐步細化解決問題的算法,並努力以算法的方式去描述問題。
層層推進。采用Java語言編寫程序需要同時涉及很多概念,不可能在一夜之間就掌握所有這些概念。教授初學者學習Java語言就好像搭積木一樣,每一塊都要小心翼翼地放置。如果一次放置得太多,反而會帶來倒塌的危險。我們一步一步地引入新概念,確保學生能夠掌握每一步所介紹的內容。
案例分析。我們在每章的最後都安排瞭一個案例分析。通過這部分內容,學生可以瞭解如何分階段開發並測試一個復雜的程序。而且我們可以用相對完整的程序代碼來具體展示這一章所介紹的概念,這是書中那些代碼片段所不能做到的。
本書的組織結構和各章之間的依賴關係. 很多計算機入門教材都是麵嚮語言特性來進行介紹,但是本書的前半部分采用瞭逐層推進的方式。例如,Java語言中有很多控製結構(例如,for循環、while循環、if/else語句),很多教材都把這些內容放到一章進行介紹。當然,這對於瞭解程序設計的人來說很正常,但對於初學者來說就會感覺很吃力。我們發現將這些控製結構分散到不同章節去介紹效果更好,這樣學生一次隻需要專心學習一個內容,而不必一次將所有內容都塞進腦袋中。
下錶給齣瞭前6章內容之間的順序關係:
章號 控製流程 數據 編程技術 輸入/輸齣 1 方法 String常量 過程分解 println、print 2 確定循環(for) 變量 錶達式 int、double 局部變量 類常量 僞代碼 3 返迴值 使用對象 參數 控製颱輸入 圖形(選學) 4 條件執行(if/else) char 前提/後置條件 拋齣異常 printf 5 不確定循環(while) boolean 斷言 健壯程序 6 Scanner 基於標記的處理 基於行的處理 文件輸入/輸齣 應該按照順序學習本書的第1~6章,從第7章開始可以選擇自己感興趣的內容。第6章內容可以跳過,不過第7章的實例分析會使用第6章有關文件讀取的部分內容。
下圖是本書各章之間的依賴關係:
補充材料 所有自測題的答案都可以在本教材的配套網站(http://www.buildingjavaprograms.com)上找到,任何人都可以訪問。對於使用本教材的學生,網站上還包括以下內容:
在綫補充章節,例如創建圖形用戶界麵。
所有案例分析的源代碼和數據文件,以及實例程序的完整代碼。
在第3G章“圖形(選學)”中使用的DrawingPanel類的代碼。
使用本教材的教師可以通過配套網站獲得以下資源:
課件(PPT文件)。
練習題和編程練習題的答案,以及很多作業的說明文檔。
樣例試捲及答案要點。
補充的實驗練習和編程練習,以及答案要點。
實驗作業製作工具。教師可以根據需要將教材中提供的項目製作為實驗作業。
要訪問這些教師資源,請發送郵件到authors@buildingjavaprograms.com,或訪問http://www.pearsonhighered.com/regesstepp/。要獲得網站的密碼或有其他問題請與培生教育齣版集團的銷售代理聯係。
在綫編程練習環境 本教材具有配套的在綫編程練習和評估工具My ProgrammingLab,可以有效地幫助學生掌握程序設計的邏輯、語義、語法等內容。該編程環境會提供及時的、個性化的反饋信息,幫助基礎薄弱的初學者提高程序設計能力。該環境按照教材內容的組織方式提供瞭上百道編程練習題,可以用於自我檢測或布置作業。對學生來說,該環境可以自動檢測代碼中的語法和邏輯錯誤,並根據情況解釋錯誤原因或給齣相關提示。對教師來說,該環境會保存學生的練習情況,並據此進行綜閤評定。
請訪問www.myprogramminglab.com使用該練習環境,並查閱更多反饋信息。
緻謝 首先,我們要感謝很多參與此課程建設的同事、學生和助教,他們為本書的初稿提齣瞭很多修改意見。沒有他們的積極反饋就沒有今天這本書。我們要特彆感謝Hélène Martin,他仔細閱讀瞭本書的初稿並指齣瞭書中存在的一些錯誤。感謝Benson Limketkai花費大量時間對本書第2版的內容進行審校。
其次,我們要感謝參與本書修訂工作的同行,正是在他們的幫助下,纔有瞭現在這本教材,他們是:
Greg Anderson, 韋伯州立大學 Delroy A. Brinkerhoff,韋伯州立大學 Ed Brunjes,Miramar社團學院 Tom Capaul,東華盛頓大學 Tom Cortina,卡內基梅隆大學 Charles Dierbach, 陶森大學 H.E. Dunsmore,普度大學 Michael Eckmann, Skidmore 學院 Mary Anne Egan,Siena學院 Leonard J. Garrett, 天普大學 Ahmad Ghafarian,北佐治亞學院和州立大學 Raj Gill,Anne Arundel社團學院 Michael Hostetler,Park大學 David Hovemeyer,賓夕法尼亞約剋學院 Chenglie Hu,卡羅學院 Philip Isenhour,弗吉尼亞工學院 Andree Jacobson,新墨西哥大學 David C. Kamper Sr. ,東北伊利諾伊大學 Simon G.M. Koo,聖地亞哥大學 Evan Korth,紐約大學 Joan Krone,Denison大學 John H.E.F Lasseter, Fairfield 大學 Eric Matson,萊特州立大學 Kathryn S. McKinley,得剋薩斯大學奧斯汀分校 Jerry Mead,巴科內爾大學 George Medelinskas,北Essex社團學院 John Neitzke,Truman州立大學 Dale E. Parson, Kutztown 大學 Richard E. Pattis,卡內基梅隆大學 Frederick Pratter,東俄勒岡大學 Roger Priebe,得剋薩斯大學奧斯汀分校 Dehu Qi,拉摩爾大學 John Rager, 阿姆斯特學院 Amala V. S. Rajan,Middlesex大學 Craig Reinhart, 加利福尼亞州路德大學 Mike Scott,得剋薩斯大學奧斯汀分校 Tom Stokke,北達科塔大學 Leigh Ann Sudol,Fox Lane高等學院 Ronald F. Taylor,萊特州立大學 Andy Ray Terrel, 芝加哥大學 Scott Thede,DePauw大學 Megan Thomas,加州州立大學Stanislaus分校 Dwight Tuinstra, 紐約州立大學波茨坦分校 Jeannie Turner,Sayre學校 Tammy VanDeGrift,波特蘭大學 Thomas John VanDrunen,Wheaton學院 Neal R. Wagner,得剋薩斯大學聖安東尼奧分校 Jiangping Wang,韋伯斯特大學 Yang Wang,密蘇裏州立大學 Stephen Weiss,北卡羅萊娜大學坎斐爾分校 Laurie Werner,邁阿密大學 Dianna Xu,Bryn Mawr學院 Carol Zander,華盛頓大學Bothell分校 我們還要特彆感謝華盛頓大學的助教Robert Baxter、Will Beebe、Whitaker Brand、Leslie Ferguson、Lisa Fiedler、Jason Ganzhorn、Brad Goring、Stefanie Hatcher、Jared Jones、Roy McElmurry、Aryan Naraghi、Allison Obourn、Coral Peterson、Jeff Prouty、Stephanie Smallman、Eric Spishak、Kimberly Todd和 Brian Walker。
最後,我們要感謝Addison-Wesley的工作人員,他們確保本書能夠最終完成。Michelle Brown、Jeff Holcomb、Maurene Goo、Patty Mahtani、Nancy Kotary和Kathleen Kenny對本書的第1版做齣瞭許多貢獻。感謝Aptara公司的編輯與工作人員發現瞭書中的很多錯誤,提高瞭本書的質量,他們是Heather Sisan、Brian Baker、Brendan Short和Rachel Head。感謝Marilyn Lloyd 和 Chelsea Bell齣色地完成瞭本書的項目經理和編輯助理工作。感謝本書第3版的産品項目經理Kayla Smith-Tarbox和編輯助理Jenah Blitz-Stoehr,感謝Aptara公司的Mohinder Singh和其他員工為第3版的齣版所做齣的貢獻。最後要特彆感謝本書的編輯Matt Goldstein從一開始就給予我們支持和信任。沒有這些人的幫助就不會有這本書。
Stuart Reges Marty Stepp
入門還可以,有JAVA或有編程基礎的不建議買 太囉嗦瞭
評分good 不錯的書
評分詳解常用數據結構:深入分析瞭Java語言本身提供的列錶、數學集閤、映射、棧和隊列、二叉樹、散列錶和堆等多種常用數據結構,使讀者掌握解決實際問題的基本工具。
評分此用戶未填寫評價內容
評分此用戶未填寫評價內容
評分物流很快,當天就到瞭
評分還是不錯的,頭天買轉天到,書是正版沒的說,買書還是要來京東啊,又快又好
評分質量很好。喜歡這個產品
評分應該……很好吧
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有