數(shù)據(jù)結(jié)構(gòu)

出版時間:2004-5  出版社:清華大學(xué)出版社  作者:馬里克 (Malik.D.S)  頁數(shù):676  字?jǐn)?shù):1113000  譯者:楊浩  
Tag標(biāo)簽:無  

前言

本書假定讀者熟知Java的基礎(chǔ)元素知識,如數(shù)據(jù)類型、控制結(jié)構(gòu)、功能函數(shù)與參數(shù)、配置數(shù)組等。但是如果讀者你需要復(fù)習(xí)這些概念,或者將C++為作為第一編程語言,可以在附錄F中找到相關(guān)的內(nèi)容。如果需要更詳細(xì)地了解附錄F中的主題,請參考《Java基礎(chǔ)教程——從問題分析到程序設(shè)計》一節(jié)以及附錄G中列出的參考文獻(xiàn)。另外,本書還要求讀者具備一定的數(shù)學(xué)基礎(chǔ),如高等數(shù)學(xué)。本書主要內(nèi)容作為計算機(jī)科學(xué)專業(yè)的基礎(chǔ)課程,本書把重點放在數(shù)據(jù)結(jié)構(gòu)和面向?qū)ο笤O(shè)計(object-orienteddesign,OOD)上。書中提供的編程示例有效地使用了面向?qū)ο笤O(shè)計技術(shù),通過以解決并編寫程序解決一特定的問題。第一1章介紹了軟件引擎工程原則理。這一章首先描述了軟件的生命周期,然后討論了算法分析的重要性,并介紹了算法分析中使用的大O表示法。面向?qū)ο笤O(shè)計技術(shù)有3個基本原則:封裝性、繼承性和多態(tài)性。Java的封裝通過類來的使用而實現(xiàn)封裝性。第一1章的下后半部分討論了用戶定義的類。如果讀者你熟悉如何創(chuàng)建并使用你自己的類,你可能略可以略過這部分內(nèi)容。這一章還討論了解決特定問題的基本面向?qū)ο笤O(shè)計技術(shù)。第2二章繼續(xù)討論前一章對面向?qū)ο笤O(shè)計原則的討論,介紹了了繼承性和異常處理,并解釋如何通過繼承性原則來擴(kuò)展類的定義。在執(zhí)行Java程序時,可能會發(fā)生一些錯誤。例如,不小心進(jìn)行了除0操作,標(biāo)記不存在的字符串,數(shù)組的索引超出了邊界;這些類型的錯誤在Java中稱為異常。Java對程序異常的處理提供了強(qiáng)大的支持。本章除了說明如何使用已有的Java異常類之外,還闡述了如何構(gòu)建自己的異常類。第3三章討論如何在數(shù)組中組織和處理數(shù)據(jù)。本章除了解釋如何開發(fā)自己的代碼之外,還演示了Java類Vector的工作原理。第4五章討論了鏈列表。這一首先解釋了鏈列表的基本屬性,如數(shù)據(jù)的插入和刪除,鏈列表的創(chuàng)建等。接著然后,這一章開發(fā)了一段通用代碼,來處理在單向鏈列表中處理的數(shù)據(jù)。這一章還討論了雙重鏈列表,帶有頭跟蹤器尾節(jié)點的鏈列表,和以及循環(huán)的鏈列表。第5六章介紹了遞歸,并用大量的示例顯演示了如何使以用遞歸的方式來解決問題,同時還考慮了遞歸的術(shù)語。第6七章和第7八章討論了堆棧和隊列。除了演示顯示了如何開發(fā)自己的通用代碼來來實現(xiàn)堆棧和隊列外,還解釋了Java類Stack的工作原理,以及堆棧和隊列的應(yīng)用。第8九章描述了搜索算法。,在分析順序的搜索算法之后,又討論了二元叉樹搜索算法,并對這種算法進(jìn)行了簡要的分析。在初步探討基于比較的搜索算法之后,本章還討論了散列算法。第9章十介紹了將算法進(jìn)行分類,例如排序算法,如選擇分類排序、插入分類排序、快速分類排序、合并分類排序和堆分類排序。第10十一章討論了二元叉樹。第十二11章介紹了圖和表圖表的算法,如最短路徑,最小生成樹,和拓?fù)浞诸惻判?。附錄A列出了Java中的保留字。附錄B顯示列出了Java運算符的優(yōu)先級權(quán)和關(guān)聯(lián)性。附錄C列出了ASCII(AmericanStandardCodeforInformationInterchange,美國信息交換標(biāo)準(zhǔn)碼)和EBCDIC(可擴(kuò)充二進(jìn)制代碼的十進(jìn)制交換碼)的性能字符集。附錄D介紹了用戶定義的類在Java程序中的使用方法。附錄E描述了本書中使用的Java類。附錄F回顧了Java的基本要點,并比較了Java和C++語言的基本概念,如數(shù)據(jù)類型,控制結(jié)構(gòu),功能參數(shù)函數(shù)和參數(shù)和以及數(shù)組。所以,如果你以第一編程語言是C++為第一編程語言,就可以通過附錄F使你掌握這些Java的基本要點。附錄G為進(jìn)一步學(xué)習(xí)Java知識和附錄F中沒有提到的主題提供了一些了一個引用表參考文獻(xiàn)主題。附錄H提供書文中精選部分練習(xí)題的答案。

內(nèi)容概要

本書是計算機(jī)科學(xué)專業(yè)的權(quán)威教程。書中通過大量簡明清晰的說明和示例,運用Java成功地描述了各種算法。內(nèi)容涉及到數(shù)據(jù)結(jié)構(gòu)課程的所有知識點,包括結(jié)構(gòu)化模板庫、二叉樹、圖的算法,以及搜索和排序等。
本書結(jié)構(gòu)特色:
·編程示例——每一章的最后都包含多個完整的示例程序,這些示例不僅給出了詳細(xì)的輸入、輸出、問題分析和算法設(shè)計,還提供了完整的程序清單。
·快速回顧——這部分總結(jié)了每章提出的所有概念。
·練習(xí)題——測試學(xué)生判斷各個聲明和語句是否正確的能力。
·編程練習(xí)——學(xué)生可以按照指定的要求編寫Java程序。
·注意——強(qiáng)調(diào)與各個概念相關(guān)的重要內(nèi)容。
·帶編號的示例——通過相關(guān)代碼說明各種編程思想。

作者簡介

D.S.Malik是Creighton大學(xué)的數(shù)學(xué)和計算機(jī)科學(xué)系教授,他于1985年在Creighton大學(xué)獲得博士學(xué)位后,就一直在該大學(xué)從事計算機(jī)教學(xué)工作。目前,他已經(jīng)表了45篇論文,出版了6本著作,涉及抽象代數(shù)、模糊自控理論和語言、模糊邏輯及其應(yīng)用、信息科學(xué)等領(lǐng)域。

書籍目錄

第1章 軟件工程基本原理和Java類 1.1 軟件的生命周期 1.2 軟件開發(fā)階段 1.3 算法分析:大O表示法 1.4 用戶定義的類  1.5 抽象數(shù)據(jù)類型 1.6 編程示例:糖果機(jī) 1.7 標(biāo)識類、對象和操作 1.8 快速總結(jié) 1.9 練習(xí)題 1.10 編程練習(xí)第2章 繼承和異常處理 2.1 繼承 2.2 抽象方法和抽象類 2.3 聚合 2.4 異常處理 2.5 編程示例:成績報告單 2.6 快速總結(jié) 2.7 練習(xí)題 2.8 編程練習(xí)第3章 基于數(shù)組的表 3.1 表元素的類型 3.2 類ArrayListClass 3.3 無序表 3.4 類Vector 3.5 編程示例:多項式的運算 3.6 快速回顧 3.7 練習(xí)題 3.8 編程練習(xí)第4章 鏈表 4.1 鏈表 4.2 鏈表元素的插入和刪除 4.3 構(gòu)建鏈表 4.4 ADT鏈表 4.5 無序鏈表 4.6 有序鏈表 4.7 雙向鏈表 4.8 帶有頭節(jié)點和尾節(jié)點的鏈表 4.9 循環(huán)鏈表 4.10 編程示例:音像店 4.11 快速回顧 4.12 練習(xí)題 4.13 編程練習(xí)第5章 遞歸 5.1 遞歸的定義 5.2 使用遞歸法解決問題 5.3 編程示例:將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù) 5.4 編程示例:Sierpinski gasket 5.5 使用遞歸還是迭代 5.6 遞歸和回溯:8-皇后問題 5.7 快速回顧 5.8 練習(xí)題 5.9 編程練習(xí)第6章 堆棧 6.1 堆棧 6.2 StackException類 6.3 使用數(shù)組實現(xiàn)堆棧 6.4 編程示例:求最高GPA 6.5 把堆棧實現(xiàn)為鏈表 6.6 由類LinkedListClass派生而來的堆棧 6.7 堆棧的應(yīng)用:后綴表達(dá)式計算器 6.8 后綴表達(dá)式計算器:圖形用戶界面(GUI) 6.9 消除遞歸:反向打印鏈表的非遞歸算法 6.10 類Stack 6.11 快速回顧 6.12 練習(xí)題 6.13 編程練習(xí)第7章 隊列 7.1 隊列 7.2 隊列的異常類 7.3 隊列的數(shù)組實現(xiàn) 7.4 隊列的鏈表實現(xiàn) 7.5 從類LinkedListClass派生而來的隊列 7.6 優(yōu)先隊列 7.7 隊列的應(yīng)用:模擬 7.8 快速回顧 7.9 練習(xí)題 7.10 編程練習(xí)第8章 搜索算法 8.1 搜索算法 8.2 基于比較的搜索算法的下限 8.3 散列算法 8.4 快速回顧 8.5 練習(xí)題 8.6 編程練習(xí)第9章 排序算法 9.1 排序算法 9.2 選擇排序: 基于數(shù)組的表 9.3 插入排序: 基于數(shù)組的表 9.4 插入排序: 基于鏈表的表 9.5 基于比較的排序算法的下限 9.6 快速排序:基于數(shù)組的表 9.7 歸并排序: 基于鏈表的表 9.8 堆排序: 基于數(shù)組的表 9.9 再論優(yōu)先級隊列 9.10 編程示例:選舉結(jié)果 9.11 快速回顧 9.12 練習(xí)題 9.13 編程練習(xí)第10章 二叉樹 10.1 二叉樹 10.2 二叉樹的遍歷 10.3 二叉搜索樹 10.4 二叉搜索樹分析 10.5 二叉樹的非遞歸遍歷算法 10.6 AVL(平衡)樹 10.7 編程示例:音像店 10.8 快速回顧 10.9 練習(xí)題 10.10 編程練習(xí)第11章 圖 11.1 圖的簡史 11.2 圖的定義和符號 11.3 圖的表示方法 11.4 圖的操作 11.5 圖的ADT定義 11.6 圖的遍歷 11.7 最短路徑算法 11.8 最小生成樹 11.9 拓?fù)渑判?11.10 快速回顧 11.11 練習(xí)題 11.12 編程練習(xí)附錄A 保留字附錄B 運算符優(yōu)先級附錄C 字符集附錄D 包和用戶定義的類附錄E Java類附錄F 針對C++程序員的JAVA介紹附錄G 參考文獻(xiàn)附錄H 部分習(xí)題答案

章節(jié)摘錄

插圖:

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    數(shù)據(jù)結(jié)構(gòu) PDF格式下載


用戶評論 (總計3條)

 
 

  •   這本書不錯,是國外計算機(jī)專業(yè)經(jīng)典教材,買了不只是為了學(xué)習(xí),還是為了收藏做參考書。
  •   發(fā)貨挺快,書也挺好
  •   書內(nèi)容一般吧,我覺得數(shù)據(jù)結(jié)構(gòu)java版的不是很好。
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號-7