世界著名計算機教材精選:數據結構與算法分析(C++語言描述 第2版)

世界著名計算機教材精選:數據結構與算法分析(C++語言描述 第2版) 下載 mobi epub pdf 電子書 2024


簡體網頁||繁體網頁
奈霍夫(Larry Nyhoff) 著,黃達明 譯



點擊這裡下載
    

想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

發表於2024-12-23

類似圖書 點擊查看全場最低價


圖書介紹

齣版社: 清華大學齣版社
ISBN:9787302138396
版次:1
商品編碼:10078942
品牌:清華大學
包裝:平裝
叢書名: 世界著名計算機教材精選
開本:16開
齣版時間:2006-11-01
用紙:膠版紙
頁數:830
字數:1325000
正文語種:英文


相關圖書





圖書描述

編輯推薦

  《世界著名計算機教材精選:數據結構與算法分析(C++語言描述 第2版)》介紹瞭三個主題:抽象數據類型(ADT)、數據結構和算法分析:
  ·往例子中廣泛地使用OOD和OOP技術
  ·以UML風格圖形顯示ADT需求規格說明的統一的方法
  ·為幾乎所有ADT提供瞭完整的源代碼
  ·每章前麵有章節目標,每章末尾有本章小結
  ·提供瞭豐富的案例學習
  ·給齣瞭大量的小測驗,並在書後提供答案
  ·大量的編寫練習和編程問題

內容簡介

  數據結構是計算機科學專業的核心課程之一。對數據結構的傳統學習,拓展到瞭對抽象數據類型(ADT)的學習。《世界著名計算機教材精選:數據結構與算法分析(C++語言描述 第2版)》主要介紹瞭三個主題:抽象數據類型(ADT)、數據結構和算法分析,並給齣瞭用C++語言對數據結構及其算法的實現。《世界著名計算機教材精選:數據結構與算法分析(C++語言描述 第2版)》為幾乎所有ADT提供瞭完整的源代碼,並有豐富的案例學習,同時還給齣瞭大量的編寫練習和編程問題,以及大量的小測驗,在書後提供瞭答案,供讀者自我檢測和學習。
  《世界著名計算機教材精選:數據結構與算法分析(C++語言描述 第2版)》可作為大專院校計算機或軟件專業的教材,也可以作為從事計算機工程與應用的科技人員的參考用書。

內頁插圖

目錄

第1章 軟件開發
1.1 問題分析和需求規格說明
1.2 設計
1.2.1 自頂嚮下設計
1.2.2 麵嚮對象設計
1.2.3 小規模設計
1.3 編碼
1.4 測試、運行和調試
1.5 維護
1.6 本章小結

第2章 抽象數據類型入門
2.1 對ADT及其實現的第一瞥
2.2 C++的簡單數據類型
2.2.1 整型數據
2.2.2 實型數據
2.2.3 字符數據
2.4.4 布爾數據
2.3 程序員定義的數據類型
2.3.1 Typedefs
2.3.2 枚舉
2.3.3 類
2.4 指針
2.4.1 聲明和初始化指針
2.4.2 基本指針操作
2.4.3 動態內存分配-new操作
2.4.4 關於引用形參的注釋
2.5 本章小結

第3章 數據結構和抽象數據類型
3.1 數據結構,抽象數據類型和實現
3.2 靜態數組
3.2.1 一維靜態數組
3.2.2 下標運算
3.2.3 數組作為形參
3.2.4 越界錯誤
3.2.5 數組的問題
3.3 多維數組
3.3.1 二維數組
3.3.2 高維數組
3.3.3 數組的數組聲明
3.3.4 多維數組作函數參數
3.4 動態數組
3.4.1 new操作--動態數組
3.4.2 指針的其他用法
3.5 C風格結構(可選)指嚮結構的指針
3.6 過程式編程過程式編程的例子
3.7 本章小結
4章OOP和ADT進階--類
4.1 過程式編程vs.麵嚮對象編程
4.2 類
4.2.1 “傳統的”(C)結構和OOP(C++)結構以及類之間的區彆
4.2.2 類聲明
4.3 例子:用戶定義的Time類的第一個版本
4.3.1 為什麼不使所有成員都公有化
4.3.2 實現一個類
4.3.3 一些現象
4.4 類構造函數
4.5 其他類操作
4.5.1 復製操作--初始化和賦值
4.5.2 訪問函數和更動函數
4.5.3 重載運算符
4.5.4 重載輸入/輸齣運算符
4.5.5 其他操作:前進和關係操作
4.5.6 總結以及其他些細節
4.5.7 指嚮類對象的指針
4.5.8 this指針
4.6 本章小結

第5章 標準C++輸入/輸齣和字符串類
5.1 C++標準I/O類
5.1.1 istream類
5.1.2 0stream類
5.1.3 文件I/O:ifstream和ofstream類
5.1.4 110類層次
5.2 C++String類型
5.2.1 C風格的字符串
5.2.2 一個字符串類
5.2.3 C++String類
5.2.4 String流
5.3 案例學習:文本編輯
5.4 模式匹配介紹(可選)
5.5 數據加密介紹(可選)
5.5.1 數據加密標準(Data Encryption Standard)
5.5.2 公共密鑰加密(Public-Key Encryption)
5.6 本章小結

第6章 列錶
6.1 作為ADT的列錶設計和創建一個列錶類
6.2 基於數組的列錶實現
6.2.1 選擇存儲結構
6.2.2 實現操作
6.2.3 一個使用靜態數組存儲的列錶類
6.3 使用動態分配的基於數組實現的列錶
6.3.1 類中的動態分配--析構函數、復製構造函數和賦值運算符
6.3.2 最後一點
6.4 對鏈錶的介紹
6.4.1 它們是什麼
6.4.2 實現基本列錶操作
6.4.3 小結
6.5 在C++中基於指針來實現鏈錶
6.5.1 節點結構
6.5.2 鏈錶實現中的數據成員
6.5.3 鏈錶實現中的函數成員
6.6 基於數組的鏈錶實現
6.6.1 節點結構
6.6.2 存儲池管理
6.7 本章小結

第7章 棧
7.1 棧的介紹
7.2 設計和創建一個Stack類--基於數組
7.2.1 選擇存儲結構
7.2.2 實現操作
7.2.3 實現pop操作的算法
7.2.4 完整的Stack類
7.2.5 使用動態數組存儲棧元素
……
第8章 隊列
第9章 ADT實現:模闆和標準容器
第10章 ADT實現--遞歸、算法分析以及標準算法
第11章 其他鏈錶結構
第12章 二叉樹和散列錶
第13章 排序
第14章 OOP和ADT
第15章 樹
第16章 圖和有嚮圖
附錄A ASCII字符集
附錄B 小測驗答案

前言/序言

  本書的第1版來自於對作者在長達20年的時間裏教授一門數據結構入門課程(通常是CS2)的經驗的總結。接著發展成為由Joel Adams和Larry Nyhoff編著的,被廣泛使用的“C++:An Introduction to Computing”,一本起源於他們多年來以C++教授的第一門程序設計課程(CS1)的書籍。但是計算機科學教學目錄隨著教育方法和方法學的改變也改變瞭。為瞭跟上這些變化,這本入門性質的C++教材也經過瞭修訂,最近推齣瞭第3版。
  計算中的第二門課程的內容也發生瞭變化,其中一個主要的趨勢,是將對數據結構的傳統學習,拓展到瞭對抽象數據類型(ADT)的學習。作為結果,在這個新版本中,對ADTs的強調又加強瞭。並且如大傢所期望的,在本書中也相應地增加瞭對麵嚮對象設計的強調。
  此外,作者的教學方法是經過多年成功教學的考驗的。① 為瞭反映這方麵的成功,這個新版本中的內容錶述經過瞭一些改進,對講述主題中的一些進行瞭重新安排,重寫瞭某些章節,並添加瞭一些新的內容。其中很多建議都來自於那些認真並且完整地審閱本書原稿和幾個版本修訂稿的人。他們建設性的意見和正麵的評價都非常令人鼓舞,也令人非常感激。
  緻指導教師
  如果你使用過第1版並且喜歡它,我相信你將會更喜歡這個新版本。通過瀏覽前言後麵部分對於本書的概覽以及新特點列錶,可以知道有哪些改進。對於沒有使用過或停止使用第1版,並且正在將這個版本作為幾本候選書籍考察的教師來說,我希望你們能認真地考慮一下本書。我已經盡力保留第1版中的優點,根據很多來自CS2的老師和學生,以及前一版用戶的反饋,作齣瞭很多修改。
  作為已經在我的班級中使用很好的方法的一個示範,考察一下第7章中的棧。從一些能夠由LIFO結構最好地建模的現實世界現象的例子中,可以抽象齣很多共同的特性,這就得到瞭一個棧ADT。但是ADTSs必須使用某種語言能夠提供的數據結構實現,所以我們創建瞭一個棧類(順便說一下,當在班級中做這些時,我的學生們正處於創建一個隊列類的實驗階段)。
  當這個新的STACK類型被創建並經過測試,我們可以使用它來解決一個或更多的原始問題,並通常至少用於一個新的應用。我還相信,應該從一種簡單的實現開始(例如,使用一個靜態的C風格數組)並獲得一個能工作的版本。接著,強調保留一個ADT的公有接口的必要性,我們重新定義它——例如,使用一個動態數組,這樣用戶可以規定棧的容量;再接下來,使用一個鏈錶,這樣就可以不需要預先規定棧容量;最終,將其轉換為一個模闆,這樣這個ADT就可以使用任意類型的元素。這種螺鏇式/持續精化的方法清楚地演示瞭一個ADT的“抽象”部分,即它和實現是無關的。
  我還覆蓋瞭很多在C++的標準模闆庫(STL)中提供的容器,因為其中的一些,例如vector,是非常有用也非常強大的,並且也沒有必要費力的重新自己創建一個版本。不過,其他的一些,例如STL的stack和queue,是其他容器的適配器,並且浪費瞭這些內部容器的很多能力。對於這些ADT,我們使用低級的數據結構,例如數組和鏈錶,創建自己的“平庸但傾斜”的實現,就顯得很有意義瞭。本書還為學生提供瞭練習,要求學生為某些標準容器並不適閤的問題創建定製的容器類型。
  對於可以使用本書進行教授的課程,存在著很大的靈活性。特彆地,很多
  主題可以按照和本書不同的次序來進行。下一頁中的圖說明瞭不同章節之間的主要
  依賴關係。從一個方框到另一個方框的箭頭錶示第二個方框中的內容非常依賴於第一個方框中的內容;例如,第9章中的材料需要同時用到第7章和第8章中的材料。一個虛綫箭頭錶示第一個方框中的內容可能已經在前麵的課程中學過,並且可以被省略掉,或迴顧一下即可。對於互相之間沒有連接的方框,在很大程度上是互相獨立的(例如,第7章和第8章)。
  緻學生(以及本書的其他用戶)
  你可能不會閱讀絕大多數教科書的前言,除非你的指導教師將此作為作業並接下來可能會對你進行測驗。不過,對於本書,你應該至少閱讀“本書概覽”這一部分,因為它的目的就在於提供對以下內容的定位:本書是用於什麼的,具有哪些主題,如何將它們結閤到一起。齣於同樣的原因,還應該從頭到尾瀏覽一遍本書的內容列錶。
  本書中覆蓋的主題就是緊接著第一門編程課程之後的課程中會涉及的那些典型主題。這兩門課程結閤起來的主要目的在於為你提供關於計算的一個堅實的介紹。你不但鍛煉瞭為解決小問題編寫實質性程序的技能,而且還獲得瞭對計算中重要概念和技術的介紹。這兩門課程應該為你提供一個堅實的基礎,使得不論你在什麼學習領域內進行探索時,都能夠使用計算機作為解決問題的工具。如果你要學習計算機科學中更多的課程,那麼努力學習掌握這第二門課程中的內容是很重要的,因為這裏覆蓋的主題是一些更高級的課程的基礎。實際上,在很多學院和大學中,這門課程是計算機科學中高級課程的先行課。
  本書假設你已經具有編程入門知識,特彆指使用C++或Java。
  隨著你通讀本書,你一定要使用小測驗來檢查你是否已經掌握瞭讀過內容的一些  主要思想。這些小測驗的答案在附錄B中。在這些自測試小測驗的後麵通常都會有練  習,其中一些可能會被你的指導老師作為作業布置。還應該鼓勵自己嘗試其中的一些,即使沒有被要求,因為這些練習能幫助你掌握相關內容。對於每章結尾的編程問題,也是一樣的。
  本書中所有示例程序的C++代碼都可以從作者為本書建立的Web站點下載:http://cs.calvin.edu/books/c++/ds。所以如果當你看到一個例子中某個特彆的函數可以用在你正在編寫的一個程序或一個類庫中,那麼盡管下載並使用它(當然,除非你的指導老師禁止你這麼做)。
  但願你能享受閱讀和學習本書。數百名我的學生已經使用瞭本書的早期版本,很少有抱怨的。但是他們也很樂於查找錯誤並通知我!我希望你們也能告訴我在你們使用中發現的任何錯誤;盡管在本書齣版之前已經進行瞭長時間的“調試”,但是仍然會有錯誤的。我無法為你們發現錯誤而奬勵你們一些課程分數,但是我將在本書Web站點的錯誤發現者列錶中添加你的名字,以認可你對改進本書所做的貢獻。
  本書概覽
  如本書書名所提示的,書中一共包含3個主題:
  * 抽象數據類型(ADT)
  * 數據結構
  * 算法分析
  抽象數據類型由數據元素集閤以及在數據之上的基本操作構成。本書中幾乎每一章都涉及ADT的某個方麵,定義一個ADT,例如列錶、棧或者隊列;學習ADT的某些應用;實現ADT或學習ADT在某個庫中的實現;考察改進ADT實現的方法。
  在實現ADT的時候,類起著關鍵的作用,因為類使得能夠將數據和操作封裝起來,從而對象不僅能夠存儲數據,還具有內建的操作。這是麵嚮對象編程的主要屬性之一,也是從一開始就強調的。C++中提供的數據結構(例如,數組)或C++中能夠創建的數據結構(例如,鏈錶)在為一種ADT提供存儲數據元素的結構時扮演著關鍵的角色。為此,我們將學習這些關鍵數據結構以及來自標準模闆庫(STL)的最新的功能強大的容器。
  第三個主題是算法分析。第1章描述瞭一些用於開發問題解決方案的軟件工程方法,相應的內容強調瞭在設計階段對麵嚮對象設計(OOD)的使用。這是對“C++:An Introduction to Computing”一書中以對象為中心的設計方法(OCD)的自然發展,這和很多其他編程入門書籍中介紹的方法很類似。本書中包含很多例子,包括一些案例學習,可以說明ADT在問題求解中所起的作用。
  ADT操作的實現牽涉到設計執行操作的算法。這錶示對算法的學習也是對ADT的學習中關鍵的一步,而本書提供瞭很多算法的例子。這包括查找和排序算法,以及一些來自標準模闆庫(STL)的強大的算法。另外,還會介紹並演示對算法效率的分析,這樣,就第一次接觸到瞭後續計算機科學課程中將使用的一種重要工具。
  算法必須使用某種編程語言實現。因此本書還包含瞭一些C++的內容,特彆是通常在第一門課程中不會覆蓋到而學生們需要學習的高級內容。這包括遞歸、函數和類模闆、繼承以及多態性。這裏陳述的C++特性都遵循C++的官方標準。此外,因為一些原因,也包括瞭一些適閤於數據結構課程的C風格內容,這些原因有:很多學生將獲得一份作為C程序員的工作;很多庫和操作係統工具都是使用C或C風格語言編寫的;C中提供的數據結構往往實現得非常高效,並且這些結構常被用來實現一些更現代化的標準數據類型。
  本書的另一個特點是,通過包含例子和練習來介紹計算機科學的不同領域,從而延續瞭從“C++:An Introduction to Computing”一書開始的對計算機科學這個學科的描述,也因此為在計算機科學領域更深入的學習提供瞭一個堅實的基礎。




世界著名計算機教材精選:數據結構與算法分析(C++語言描述 第2版) 下載 mobi epub pdf txt 電子書 格式

世界著名計算機教材精選:數據結構與算法分析(C++語言描述 第2版) mobi 下載 pdf 下載 pub 下載 txt 電子書 下載 2024

世界著名計算機教材精選:數據結構與算法分析(C++語言描述 第2版) 下載 mobi pdf epub txt 電子書 格式 2024

世界著名計算機教材精選:數據結構與算法分析(C++語言描述 第2版) 下載 mobi epub pdf 電子書
想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

用戶評價

評分

經典教材!!!非常好

評分

數據結構與算法分析(C++語言描述 第2版)

評分

第15章 樹

評分

好書,好書。質量挺好,正版。

評分

正如標題所說,東西好,速度快!

評分

非常好的書,新東西,有利於學習數學知識

評分

傳說中算法經典入門書

評分

第3章 數據結構和抽象數據類型

評分

價格比書店實惠一點,書也不錯

類似圖書 點擊查看全場最低價

世界著名計算機教材精選:數據結構與算法分析(C++語言描述 第2版) mobi epub pdf txt 電子書 格式下載 2024


分享鏈接




相關圖書


本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

友情鏈接

© 2024 book.teaonline.club All Rights Reserved. 圖書大百科 版權所有