出版時(shí)間:2009-8 出版社:清華大學(xué)出版社 作者:(美)路易斯(Lewis,J.),(美)蔡斯(Chase,J.) 著,金名 等譯 頁(yè)數(shù):393
Tag標(biāo)簽:無(wú)
前言
本書可用作數(shù)據(jù)結(jié)構(gòu)與算法課程的教材。數(shù)據(jù)結(jié)構(gòu)與算法課程常常稱為CS2課程,因?yàn)樗ǔW鳛橛?jì)算機(jī)專業(yè)的第二門課程。本書涵蓋了計(jì)算機(jī)專業(yè)課程設(shè)置2001(Computing Curricula 2001,CC2001)的宗旨?! 慕虒W(xué)的角度看,本書遵循了一流的CS1教材“Java Software Solutions:Foundations of Program Design”(作者John Lewis與William Loftus)一書的風(fēng)格和方法。本書使用了在該書中受到很高評(píng)價(jià)的一些特色,比如關(guān)鍵概念框和完整代碼示例。作為計(jì)算機(jī)專業(yè)學(xué)生的兩門或者三門導(dǎo)論課程,這兩本書提供了一個(gè)堅(jiān)實(shí)而系統(tǒng)的教學(xué)方案。也就是說(shuō),本書不要求學(xué)生在以前的課程中已經(jīng)使用過(guò)Java Software Solutions一書?! ≡贑S1和CS2課程中出現(xiàn)的內(nèi)容(比如遞歸或排序),本書也同樣進(jìn)行了闡述。本書還給出了一些有用的參考材料,介紹了面向?qū)ο蟮母拍钜约叭绾卧贘ava中實(shí)現(xiàn)?! ∥覀冎?,數(shù)據(jù)結(jié)構(gòu)與算法在計(jì)算機(jī)專業(yè)課程中起著關(guān)鍵的作用,我們認(rèn)為,本書能較好地滿足該課程的要求?! ”緯?版 在第3版中,我們對(duì)本書進(jìn)行了一些重要的修改,以適應(yīng)教學(xué)需要。最重要的修改是,對(duì)本書的基本結(jié)構(gòu)進(jìn)行了重新設(shè)計(jì),以使得這些內(nèi)容之間的脈絡(luò)更加清晰。本版不是用一大章來(lái)復(fù)習(xí)面向?qū)ο蟮母拍?,而是把這些內(nèi)容作為一個(gè)附錄以供參考。然后在全書需要的地方對(duì)這些概念進(jìn)行復(fù)習(xí),并介紹其實(shí)現(xiàn)策略的上下文,引用適當(dāng)?shù)膮⒖疾牧?。這不僅可以適時(shí)地把這些內(nèi)容鏈接起來(lái),而且還演示了特定語(yǔ)言結(jié)構(gòu)的使用。 本版對(duì)算法分析的討論進(jìn)行了擴(kuò)展,并把算法分析作為了單獨(dú)的一章。但是,這些討論也只是停留在恰當(dāng)?shù)碾y度上。本書的策略是,只對(duì)算法分析的基本概念進(jìn)行介紹,而不是進(jìn)行很深入的討論?! ×硪粋€(gè)重要的結(jié)構(gòu)變化是,對(duì)集合的介紹使用了一個(gè)棧作為基本示例。在本書的上一版本中,我們以一種抽象的方法來(lái)介紹集合,即把它與核心數(shù)據(jù)結(jié)構(gòu)分開(kāi),使用諸如背包或組集之類的示例。這種方法凸顯這樣一個(gè)事實(shí):從概念上來(lái)說(shuō),棧是很簡(jiǎn)單的。使用它作為第一個(gè)示例,可以增進(jìn)把集合作為一個(gè)整體的理解?! ”緯纳弦话姹居昧藥讉€(gè)章節(jié)來(lái)介紹幾個(gè)大型案例研究,這些案例研究使用集合來(lái)求解實(shí)際問(wèn)題。很多教師覺(jué)得這些很有用,但他們同時(shí)覺(jué)得這會(huì)打斷對(duì)核心內(nèi)容的介紹。因此,在這一版本中,我們把這些案例研究章節(jié)從書中刪除了,并把它們作為輔助材料放在本書配套的網(wǎng)站上。我們鼓勵(lì)教師去下載這些材料,并以他們認(rèn)為適合的方式使用這些 材料?! ∽詈螅覀儗?duì)本版進(jìn)行了重新審閱,并改進(jìn)了一些討論。我們擴(kuò)展了對(duì)圖的討論,把“圖”與“散列”兩章的順序進(jìn)行了調(diào)換,使得脈絡(luò)更清晰。本版還添加了一章來(lái)專門討論Set與Map集合?! ∥覀冋J(rèn)為,以上這些修改,都是建立在使用以前版本教學(xué)的基礎(chǔ)上,為教師提供更多的機(jī)會(huì)和更好的靈活性來(lái)介紹本書的內(nèi)容?! ”緯膶懽黠L(fēng)格 這種類型的圖書在整體寫作方法上的差別相當(dāng)大。本書的寫作方法是建立在一些我們強(qiáng)烈推薦的重要原則之上的。首先,我們以一種連貫敘述的方式介紹在本書中將要考察的各種集合。其次,我們強(qiáng)調(diào)完美軟件設(shè)計(jì)技巧的重要性。第三,我們對(duì)本書結(jié)構(gòu)加以組織以支持和強(qiáng)化本書的重要目標(biāo):即數(shù)據(jù)結(jié)構(gòu)與算法的學(xué)習(xí)。我們將更深入地考察這些原則?! ∵B 貫 敘 述 當(dāng)考察某種類型的集合時(shí),將按照以下順序仔細(xì)解決每一問(wèn)題。 1. 概念:我們會(huì)從概念上討論集合,并構(gòu)建它所提供的服務(wù)(其接口)。 2. 用途:我們將介紹一些示例,闡述在求解問(wèn)題時(shí),集合的特定屬性是如何派上用場(chǎng)的(不用管集合是如何被實(shí)現(xiàn)的)。 3. 實(shí)現(xiàn):我們將考察集合的各種實(shí)現(xiàn)。 4. 分析:我們對(duì)各種實(shí)現(xiàn)進(jìn)行了比較和區(qū)分?! ≡谇‘?dāng)?shù)臅r(shí)候,我們將討論Java Collections API。如果有必要討論API中某個(gè)特定集合類型,那么我們將討論該集合及其實(shí)現(xiàn)。因此,我們歡迎API,但并不完全局限于它。并且,我們會(huì)毫不猶豫地指出其缺陷?! 》治霾襟E是一個(gè)較高的層次。在第2章介紹的大O記法的概念將全書中應(yīng)用,但這更多地是直覺(jué)上而不是數(shù)學(xué)上的分析?! ⊥昝赖某绦蛟O(shè)計(jì) 全書始終將完美的軟件工程實(shí)踐置于一個(gè)高度優(yōu)先的地位。我們對(duì)集合實(shí)現(xiàn)的設(shè)計(jì)以及對(duì)使用它們的程序的設(shè)計(jì)都將遵循一致和恰當(dāng)?shù)臉?biāo)準(zhǔn)?! ⒓系慕涌谂c其底層實(shí)現(xiàn)分隔開(kāi),是非常重要的。某一集合提供的服務(wù),通常在Java接口中有著正式定義。為了強(qiáng)化該集合為一個(gè)抽象的思想,只要合適,我們都將接口名稱用作該集合的類型指定?! 〕藢?shí)踐堅(jiān)實(shí)的設(shè)計(jì)原則外,我們還在全書的論述中對(duì)其進(jìn)行了強(qiáng)調(diào)。我們努力嘗試既通過(guò)示例又通過(guò)不斷強(qiáng)化的方式來(lái)進(jìn)行教學(xué)。 清晰的組織結(jié)構(gòu) 我們對(duì)本書內(nèi)容進(jìn)行了精心組織,以將偏離主題帶來(lái)的干擾降到最低,并對(duì)本書的總體目標(biāo)進(jìn)行強(qiáng)化。本書的組織使得本書既可以用作數(shù)據(jù)結(jié)構(gòu)與算法的教學(xué)用書,又可以作為一本頗有價(jià)值的參考用書?! ”緯膬?nèi)容可以劃分為多個(gè)部分:第一部分包括前兩章,介紹了集合的概念和算法分析。第二部分包括隨后的4章,介紹了數(shù)據(jù)結(jié)構(gòu)與算法以及影響它們的基本問(wèn)題,并介紹線性集合(棧、隊(duì)列和列表)。第三部分介紹了遞歸、排序和查找的概念。第四部分介紹了線性集合(樹(shù)、堆、散列和圖)。除樹(shù)之外的每一個(gè)集合類型都自成一章。有關(guān)樹(shù)的內(nèi)容分布于一系列的章節(jié)中,用于考察其各個(gè)方面和各種作用。 章 節(jié) 劃 分 第1章(概述)討論了軟件質(zhì)量涉及的各個(gè)方面,并對(duì)軟件開(kāi)發(fā)問(wèn)題進(jìn)行了一個(gè)全面概述。本章用于在著手?jǐn)?shù)據(jù)結(jié)構(gòu)和算法設(shè)計(jì)的細(xì)節(jié)之前,建立一套正確的開(kāi)發(fā)思想?! 〉?章(算法分析)介紹了確定算法效率的基礎(chǔ)知識(shí),并闡述了一個(gè)重要的標(biāo)準(zhǔn),使得開(kāi)發(fā)人員可以以正確的方式將一種算法與另一種算法進(jìn)行比較。本章的重點(diǎn)是理解重要的概念,而不是陷入數(shù)學(xué)或公式的漩渦?! 〉?章(集合)建立了集合的概念,強(qiáng)調(diào)了將接口和實(shí)現(xiàn)區(qū)分開(kāi)來(lái)的必要性。本章還從概念上介紹了棧,然后闡述了基于數(shù)組的棧的實(shí)現(xiàn)?! 〉?章(鏈?zhǔn)浇Y(jié)構(gòu))討論了使用引用來(lái)創(chuàng)建鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)。本章考察了有關(guān)鏈表管理的基本問(wèn)題,然后使用基本鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)(在第3章中已介紹),定義棧的另一種實(shí)現(xiàn)方法?! 〉?章(隊(duì)列)考察了先進(jìn)先出隊(duì)列的概念和實(shí)現(xiàn)。本章通過(guò)一個(gè)高效使用隊(duì)列的示例來(lái)討論基數(shù)排序。本章所介紹的實(shí)現(xiàn)包括基本鏈表以及定長(zhǎng)和環(huán)形數(shù)組?! 〉?章(列表)論述了3種類型的列表:有序表、無(wú)序表和索引表。通過(guò)討論這3種類型列表所共有的及各自獨(dú)有的操作來(lái)對(duì)它們進(jìn)行比較和區(qū)分。在各種類型的列表設(shè)計(jì)中,我們將恰當(dāng)?shù)厥褂美^承,且通過(guò)基于數(shù)組的和鏈?zhǔn)降谋硎緝煞N方式實(shí)現(xiàn)這些列表?! 〉?章(遞歸)概要介紹了遞歸的概念,以及遞歸解決方案為什么是優(yōu)美的。本章還探討了遞歸的實(shí)現(xiàn)細(xì)節(jié),并討論了遞歸算法分析的基本思想?! 〉?章(排序與查找)討論了線性查找和二分查找算法,以及若干排序的算法(如選擇排序、插入排序、冒泡排序、快速排序以及歸并排序)。本章著重討論與查找和排序相關(guān)的編程問(wèn)題,比如將Comparable接口用作對(duì)象比較的基礎(chǔ)。以特定數(shù)據(jù)結(jié)構(gòu)為基礎(chǔ)的查找與排序(如堆排序)將在本書后面的適當(dāng)章節(jié)討論?! 〉?章(樹(shù))對(duì)樹(shù)進(jìn)行了概述,并構(gòu)建了關(guān)鍵的術(shù)語(yǔ)和概念。本章討論了各種實(shí)現(xiàn)方式,并通過(guò)一個(gè)二叉樹(shù)來(lái)表示和評(píng)估某一算數(shù)表達(dá)式?! 〉?0章(二叉查找樹(shù))利用第9章構(gòu)建的基本概念,定義了一個(gè)經(jīng)典的二叉查找樹(shù)。本章先考察了一個(gè)二叉查找樹(shù)的鏈?zhǔn)綄?shí)現(xiàn),然后討論了樹(shù)結(jié)點(diǎn)的平衡如何對(duì)其性能起到關(guān)鍵作用。這就引出了AVL和二叉查找樹(shù)的紅/黑實(shí)現(xiàn)的介紹?! 〉?1章(優(yōu)先隊(duì)列與堆)探討了堆的概念、使用和實(shí)現(xiàn),尤其是與優(yōu)先隊(duì)列的關(guān)系。我們通過(guò)一個(gè)堆排序來(lái)舉例說(shuō)明其用途。本章還介紹了鏈?zhǔn)綄?shí)現(xiàn)和基于數(shù)組的實(shí)現(xiàn)?! 〉?2章(多路查找樹(shù))是前面章節(jié)的自然延伸。本章討論了2-3樹(shù)、2-4樹(shù)以及廣義B樹(shù)的概念,還討論了各種實(shí)現(xiàn)?! 〉?3章(圖)探討了無(wú)向圖和有向圖的概念,并構(gòu)建了一些重要的術(shù)語(yǔ)。本章考察了若干常用圖的算法,并討論了各種實(shí)現(xiàn),包括鄰接矩陣。 第14章(散列)包括散列的概念及其相關(guān)問(wèn)題,比如散列函數(shù)及沖突。本章討論了散列的各種Java Collections API。 第15章(Set與Map集合)介紹了這兩者類型的集合及其對(duì)Java Collections API的重要性。 附錄A(UML)概述了統(tǒng)一建模語(yǔ)言。UML是表示面向?qū)ο笙到y(tǒng)的事實(shí)標(biāo)準(zhǔn)表示法?! 「戒汢(面向?qū)ο笤O(shè)計(jì))為任何需要回顧面向?qū)ο蟮幕靖拍罴捌湓贘ava中如何實(shí)現(xiàn)等內(nèi)容的讀者提供參考。該章包含的概念包括抽象、類、封裝、繼承、多態(tài)性以及許多相關(guān)的Java語(yǔ)言結(jié)構(gòu),比如接口?! 〗?輔 資 料 本書的所有讀者都可以在www.aw.com/cssupport網(wǎng)址上獲得以下教輔資料?! ? 本書中出現(xiàn)的所有程序的源代碼?! ? 完整的案例研究程序,包括Black Jack Game、Calculator、Family Tree Program和Web Crawler程序?! ≡赑earson Education的教師資源中心(網(wǎng)址是http://www.pearsonhighered.com/irc)里的以下教輔資料僅限于滿足條件的教師。請(qǐng)?jiān)L問(wèn)該網(wǎng)址,與你當(dāng)?shù)氐腜earson Education銷售代表聯(lián)系,或者發(fā)送電子郵件至computing@pearson.com,咨詢有關(guān)資料獲取的信息?! ? 本書中的部分練習(xí)題和編程項(xiàng)目的答案?! ? 測(cè)試題庫(kù),含有測(cè)驗(yàn)用的問(wèn)題?! ? 講解本書內(nèi)容的PowerPoint幻燈片。
內(nèi)容概要
本書是著名作者John Lewis與Joseph Chase作為其一流的CSI教材“Java Software Solutions:Foundations of Program Design”的姊妹篇。盡管《Java軟件結(jié)構(gòu)與數(shù)據(jù)結(jié)構(gòu)(第3版)》的英文名為“Java Software Structures:Designing and Using Data Structures”,但正如作者在前言中所說(shuō)的那樣,《Java軟件結(jié)構(gòu)與數(shù)據(jù)結(jié)構(gòu)(第3版)》其實(shí)是一本可作為“數(shù)據(jù)結(jié)構(gòu)與算法”課程的教材。根據(jù)使用了前兩版的教師和學(xué)生的反饋,作者在第3版中進(jìn)行了重大修改,以適應(yīng)教學(xué)的需要。最重要的修改包括這樣幾個(gè)方面: (1)對(duì)《Java軟件結(jié)構(gòu)與數(shù)據(jù)結(jié)構(gòu)(第3版)》的基本結(jié)構(gòu)進(jìn)行了重新設(shè)計(jì),以使得這些內(nèi)容之間的脈絡(luò)更加清晰; (2)第3版把對(duì)面向?qū)ο蟾拍畹膹?fù)習(xí)作為一個(gè)附錄以供參考; (3)上一版給出了幾個(gè)完整的Java程序設(shè)計(jì)案例和源代碼,在第3版中進(jìn)行了刪除,并把這幾個(gè)程序案例源代碼放在了網(wǎng)上供讀者下載。譯者認(rèn)為,這不僅壓縮了不少篇幅,而且使得《Java軟件結(jié)構(gòu)與數(shù)據(jù)結(jié)構(gòu)(第3版)》更像是一本數(shù)據(jù)結(jié)構(gòu)與算法的教材,而不是Java程序設(shè)計(jì)的教材; (4)第3版擴(kuò)展了對(duì)圖的討論,把“圖”與“散列”兩章的順序進(jìn)行了調(diào)換,使得脈絡(luò)更清晰。本版還添加了一章來(lái)專門討論Set與Map集合。 總之,這些修改都是建立在使用以前版本教學(xué)的基礎(chǔ)上,為教師提供更多的機(jī)會(huì)和更好的靈活性來(lái)使用《Java軟件結(jié)構(gòu)與數(shù)據(jù)結(jié)構(gòu)(第3版)》。
書籍目錄
第1章 概述 1.1 軟件質(zhì)量 1.1.1 正確性 1.1.2 可靠性 1.1.3 健壯性 1.1.4 可用性 1.1.5 可維護(hù)性 1.1.6 可重用性 1.1.7 可移植性 1.1.8 運(yùn)行效率 1.1.9 質(zhì)量問(wèn)題 1.2 數(shù)據(jù)結(jié)構(gòu) 1.2.1 一個(gè)物理示例 1.2.2 以集裝箱作為對(duì)象 關(guān)鍵概念小結(jié) 自測(cè)題 練習(xí)題 自測(cè)題答案第2章 算法分析 2.1 算法效率分析 2.2 增長(zhǎng)函數(shù)與大O記法 2.3 增長(zhǎng)函數(shù)的比較 2.4 時(shí)間復(fù)雜度分析 2.4.1 循環(huán)運(yùn)行的復(fù)雜度分析 2.4.2 嵌套循環(huán)的復(fù)雜度分析 2.4.3 方法調(diào)用的復(fù)雜度分析 關(guān)鍵概念小結(jié) 自測(cè)題 練習(xí)題 自測(cè)題答案 參考文獻(xiàn) 第3章 集合 3.1 概述 3.1.1 抽象數(shù)據(jù)類型 3.1.2 Java集合API 3.2 棧集合 3.3 主要的面向?qū)ο蟾拍? 3.3.1 繼承 3.3.2 類層次 3.3.3 Object類 3.3.4 多態(tài)性 3.3.5 引用與類層次 3.3.6 泛型 3.4 棧ADT 接口 3.5 使用棧計(jì)算后綴表達(dá)式 3.6 異常 3.6.1 異常消息 3.6.2 try語(yǔ)句 3.6.3 異常傳播 3.7 用數(shù)組實(shí)現(xiàn)棧 管理容量 3.8 ArrayStack類 3.8.1 構(gòu)造函數(shù) 3.8.2 push操作 3.8.3 pop操作 3.8.4 peek操作 3.8.5 其他操作 關(guān)鍵概念小結(jié) 自測(cè)題 練習(xí)題 程序設(shè)計(jì)項(xiàng)目 自測(cè)題答案 第4章 鏈?zhǔn)浇Y(jié)構(gòu) 4.1 鏈接作為引用 4.2 管理鏈表 4.2.1 訪問(wèn)元素 4.2.2 插入結(jié)點(diǎn) 4.2.3 刪除結(jié)點(diǎn) 4.2.4 啞結(jié)點(diǎn) 4.3 無(wú)鏈接的元素 雙向鏈表 4.4 用鏈表實(shí)現(xiàn)棧 4.4.1 LinkedStack類 4.4.2 push操作 4.4.3 pop操作 4.4.4 其他操作 4.5 使用棧來(lái)穿越迷宮 4.6 java.util.Stack類實(shí)現(xiàn)棧 4.6.1 獨(dú)有的操作 4.6.2 繼承與實(shí)現(xiàn) 關(guān)鍵概念小結(jié) 自測(cè)題 練習(xí)題 程序設(shè)計(jì)項(xiàng)目 自測(cè)題答案 第5章 隊(duì)列第6章 列表第7章 遞歸第8章 排序與查找第9章 樹(shù)第10章 二叉查找樹(shù)第11章 優(yōu)先隊(duì)列與堆第12章 多路查找樹(shù)第13章 圖第14章 散列第15章 Set與Map集合附錄A UML附錄B 面向?qū)ο笤O(shè)計(jì)
章節(jié)摘錄
但是,在這種情景下,如果要?jiǎng)?chuàng)建一個(gè)為Map集合的有序列表,就要?jiǎng)?chuàng)建一個(gè)表示每個(gè)員工的名字的類,以及一個(gè)指向第二個(gè)類的引用。第二個(gè)類含有員工數(shù)據(jù)的其他所有信息。我們?nèi)缓笥糜行蛄斜聿僮靼训谝粋€(gè)類加載到我們的列表中,而第二個(gè)類的對(duì)象存在于內(nèi)存中。這里第一個(gè)類稱為關(guān)鍵字,而第二個(gè)類稱為數(shù)據(jù)?! ∮眠@種方式,當(dāng)我們操作列表的元素時(shí),只需處理關(guān)鍵字、名稱和引用,與需要操作和員工有關(guān)的所有數(shù)據(jù)相比,此時(shí)需要的內(nèi)存要少得多。這里還有一個(gè)優(yōu)點(diǎn),那就是當(dāng)相同的員工數(shù)據(jù)被多個(gè)Map引用時(shí),無(wú)須使用多個(gè)副本。因此,如果一個(gè)應(yīng)用程序用棧來(lái)表示員工信息,而另一個(gè)應(yīng)用程序則用有序列表來(lái)表示,那么我們就可以把關(guān)鍵字加載到棧中,把匹配的關(guān)鍵字加載到有序列表,此時(shí)實(shí)際的數(shù)據(jù)只有一個(gè)實(shí)例。與處理別名(即多個(gè)指向相同對(duì)象的引用)的情況一樣,因?yàn)閷?duì)象只有一個(gè)實(shí)例,因此,當(dāng)需要通過(guò)一個(gè)引用來(lái)修改某個(gè)對(duì)象時(shí),由于該對(duì)象同時(shí)被其他引用所引用,因此必須非常小心?! ≡诘?0章中,我們討論了TreeSet和TreeMap的Java集合API實(shí)現(xiàn)。在第14章中,我們討論了使用散列的Java集合API實(shí)現(xiàn)。注意,這些Set實(shí)現(xiàn)違反了Set集合的代數(shù)表示。該Set集合的元素是無(wú)序的。除此之外,還有一些其他類實(shí)現(xiàn)了java.util.Set或java.util.Map接口。這就是為什么Java語(yǔ)言的設(shè)計(jì)者在很多情況下使用Set和Map集合,而不是我們本書中所介紹的傳統(tǒng)數(shù)據(jù)結(jié)構(gòu)。簡(jiǎn)單地說(shuō),Java語(yǔ)言不是教學(xué)語(yǔ)言,而是用于快速而高效地解決工業(yè)問(wèn)題的語(yǔ)言。因此,很多Java解決方案很適用但不那么優(yōu)美?! ‘?dāng)然,對(duì)立的問(wèn)題也同樣重要。既然Java語(yǔ)言的設(shè)計(jì)者選擇使用Set和Map,而不是本書所介紹的傳統(tǒng)數(shù)據(jù)結(jié)構(gòu),那么我們?yōu)槭裁椿ㄟ@么多的時(shí)間來(lái)介紹傳統(tǒng)數(shù)據(jù)結(jié)構(gòu)呢?對(duì)這個(gè)問(wèn)題有很多很好的答案,但這里有一個(gè)答案可以超越其他所有答案。盡管Java是一種很好的語(yǔ)言,但它并不是你的職業(yè)生涯中將遇到的唯一語(yǔ)言。在我們短暫的職業(yè)生涯中,語(yǔ)言來(lái)來(lái)去去很多次,但數(shù)據(jù)結(jié)構(gòu)的基本原則仍保持不變。因此,我們學(xué)習(xí)這些基本原則很重要,這樣我們就不會(huì)重復(fù)犯過(guò)去的錯(cuò)誤。關(guān)鍵概念小結(jié) ·Set是一種非線性集合。在該集合中的元素之間基本上沒(méi)有任何組織結(jié)構(gòu)。
編輯推薦
《Java軟件結(jié)構(gòu)與數(shù)據(jù)結(jié)構(gòu)(第3版)》的寫作方法是建立在一些我們強(qiáng)烈推薦的重要原則之上的。首先,我們以一種連貫敘述的方式介紹在《Java軟件結(jié)構(gòu)與數(shù)據(jù)結(jié)構(gòu)(第3版)》中將要考察的各種集合。其次,我們強(qiáng)調(diào)完美軟件設(shè)計(jì)技巧的重要性。第三,我們對(duì)《Java軟件結(jié)構(gòu)與數(shù)據(jù)結(jié)構(gòu)(第3版)》結(jié)構(gòu)加以組織以支持和強(qiáng)化《Java軟件結(jié)構(gòu)與數(shù)據(jù)結(jié)構(gòu)(第3版)》的重要目標(biāo):即數(shù)據(jù)結(jié)構(gòu)與算法的學(xué)習(xí)。我們將更深入地考察這些原則。
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
Java軟件結(jié)構(gòu)與數(shù)據(jù)結(jié)構(gòu) PDF格式下載