出版時間:2012-5 出版社:清華大學出版社 作者:(美)梅因 等著,金名 等譯 頁數(shù):727 字數(shù):1137000 譯者:金名
Tag標簽:無
內容概要
《數(shù)據(jù)結構與面向對象程序設計(c++版)(第4版)》是為計算機科學專業(yè)的第二門課程cs2編寫的,首先介紹了軟件開發(fā)的各個階段、c++面向對象程序設計思想,然后從軟件開發(fā)的角度,利用面向對象設計的思想,系統(tǒng)闡述了指針和動態(tài)數(shù)組、鏈表、模板類、迭代器、棧、隊列、遞歸實現(xiàn)、樹和圖等內容,并對排序與查找的相關算法進行了深入剖析。為了讓讀者鞏固所學知識,在每節(jié)后面都給出了大量練習題,并在每章后面給出廠答案。為了鍛煉讀者的動手能力,每章末給出了大量編程項目,在本書的配套網(wǎng)站www.cs.colorado.edu/~maln還給出了一些更具挑戰(zhàn)性的編程項目。
《數(shù)據(jù)結構與面向對象程序設計(c++版)(第4版)》不僅非常適合于作為計算機及相關專業(yè)“數(shù)據(jù)結構”和“c++面向對象程序設計”的教材,也是計算機軟件開發(fā)人員的常備參考書。
作者簡介
作者:(美國)梅因(Michael Main) (美國)薩維特奇(Walter Savitch) 譯者:金名 等
書籍目錄
第1章 軟件開發(fā)的階段
1.1規(guī)范說明、設計與實現(xiàn)
1.2運行時間分析
1.3測試與調試
1.4本章小結
第2章 抽象數(shù)據(jù)類型與c++類
2.1類與成員
2.2構造函數(shù)
2.3使用名稱空間、頭文件與實現(xiàn)文件
2.4類與參數(shù)
2.5操作符重載
2.6標準模板庫與pair類
2.7本章小結
第3章 容器類
3.1bag類
3.2編程項目:sequence類
3.3交互式測試程序
3.4stl中的multiset類及其迭代器
3.5本章小結
第4章 指針與動態(tài)數(shù)組
4.1指針與動態(tài)內存
4.2把指針與數(shù)組作為參數(shù)
4.3具有動態(tài)數(shù)組的bag類
4.4有關動態(tài)類的說明
4.5stl的string類與編程項目
4.6編程項目:polynomial類
4.7本章小結
第5章 鏈表
5.1鏈表的基本節(jié)點類
5.2鏈表工具包
5.3用鏈表實現(xiàn)bag類
5.4編程項目:用鏈表實現(xiàn)sequence類
5.5動態(tài)數(shù)組、鏈表與雙向鏈表
5.6標準模板庫的vector、list和deque類
5.7本章小結
第6章 用模板、迭代器和stl進行軟件開發(fā)
6.1模板函數(shù)
6.2模板類
6.3stl算法與迭代器的使用
6.4節(jié)點模板類
6.5鏈表的迭代器
6.6含迭代器的鏈表版bag模板類
6.7本章小結與5個bag類的小結
第7章 棧
7.1stl的stack類
7.2棧的應用
7.3stack類的實現(xiàn)
7.4更復雜的棧應用
7.5本章小結
第8章 隊列
8.1stl隊列
8.2隊列的應用
8.3隊列類的實現(xiàn)
8.4實現(xiàn)stl的雙端隊列
8.5棧、隊列和優(yōu)先隊列類的引用返回值
8.6本章小結
第9章 遞歸思想
9.1.遞歸函數(shù)
9.2遞歸的研究:分形和迷宮
9.3推導遞歸
9.4本章小結
第10章 樹
10.1樹的簡介
10.2樹的表示法
10.3二叉樹節(jié)點類
10.4樹的遍歷
10.5二叉查找樹
10.6本章小結
第11章 平衡樹
11.1堆
11.2stl優(yōu)先隊列與堆算法
11.3b樹
11.4樹、日志和時間分析
11.5stl的map類和multimap類
11.6本章小結
第12章 查找
12.1順序查找和二叉查找
12.2開地址散列
12.3鏈式散列
12.4散列的時間分析
12.5程序設計:使用stl向量的表類
12.6tri庫擴展中的散列表
12.7本章小結
第13章 排序
13.1二次排序算法
13.2遞歸排序算法
13.3使用堆的o(n log n)算法
13.4sn的排序與二叉查找
13.5本章小結
第14章 派生類與繼承
14.1派生類
14.2仿真生態(tài)系統(tǒng)
14.3虛擬成員函數(shù)和game類
14.4本章小結
第15章 圖
15.1圖的定義
15.2圖的實現(xiàn)
15.3圖的遍歷
15.4路徑算法
15.5本章小結
附錄
附錄a ascii字符集
附錄b大o表達式
附錄c操作符的優(yōu)先順序
附錄d命令行編譯和鏈接
附錄e使用老式編譯器
附錄fc什的輸入和輸出
附錄g選擇庫函數(shù)
附錄h標準模板類簡介
附錄i一些有用函數(shù)的工具包
附錄j基本風格指南
附錄k下載gnu編譯器和軟件
附錄l異常處理
章節(jié)摘錄
版權頁: 插圖: 不用死記硬背這些階段,通過本書的學習以及針對每個階段的練習,就可以熟練地掌握它們,而不是僅僅記住它們。僅僅記住這樣一個“形式化的列表”是錯誤的,因為這樣會讓人覺得軟件開發(fā)過程似乎只是一個接一個的離散步驟的單純序列。在實際的軟件開發(fā)中,各個階段之間的界限往往是模糊不清的。例如,在編寫代碼之前,有關解決方案的效率分析可能與設計過程同時進行了,底層設計的決議也有可能被推遲到了實現(xiàn)階段。而且,這些階段可能并不是一個接一個地出現(xiàn),通常,在這些階段之間還會有一個反復的過程。 軟件開發(fā)過程中的大部分工作并不依賴于任何特定的編程語言。規(guī)范說明、解決方案的設計與分析可能與特定的編程語言沒有或僅僅具有很少的關系。盡管如此,但在實現(xiàn)的具體細節(jié)時,我們的確需要決定采用何種編程語言。在本書中,所采用的語言是C++。 在開始本書的學習之前,應當了解的C++知識C++語言作為C語言的擴展,是由AT&T Bell實驗室的Bjarne Stroustrup設計的,其目的是為了支持面向對象程序設計(Object-Oriented Programming,OOP)。OOP是一種致力于信息隱藏和組件重用的技術。在本書中,將介紹一些重要的OOP原理,這些原理可以運用于你的設計和實現(xiàn)之中。 可以使用多種不同的C++編譯器來編譯本書中的代碼,但最理想的是,使用支持最新的ANSI/ISO C++標準特性的編譯器,本書中介紹了這一標準。但是,對于那些不能完全支持該標準的老式編譯器,有多種補救措施。 無論你使用何種編程環(huán)境,都應該熟悉對簡短C++程序的編寫、編譯和運行,都應當了解如何使用內置數(shù)據(jù)類型(如數(shù)值型、字符型和布爾型),還應能使用數(shù)組。 在本書中,將介紹C++標準庫,但你不需要具有任何關于該庫的預備知識。對標準庫的數(shù)據(jù)結構的學習,將有助于你理解各種不同方式之間的利弊,從而指導我們完成自己的數(shù)據(jù)結構的設計和實現(xiàn)。在設計自己的數(shù)據(jù)結構時,遵循標準庫的方式有兩個好處:其一是,其他程序員能夠很容易理解;其二是,可以從標準庫中獲得支持,例如,標準搜索與排序算法。 本書后面的內容將遵循標準庫的方式,來處理有關C++描述的數(shù)據(jù)結構的設計與實現(xiàn)。 1.1 節(jié)重點討論描述程序行為的技術,以及一些有關設計和實現(xiàn)的技巧。1.2節(jié)闡述了一種特定類型的分析方法:程序的運行時間分析。1.3節(jié)給出了一些有關測試與調試程序的技術。
編輯推薦
《數(shù)據(jù)結構與面向對象程序設計(C++版)(第4版)》是為計算機科學專業(yè)的第二門課程CS2編寫的,《數(shù)據(jù)結構與面向對象程序設計(C++版)(第4版)》系統(tǒng)全面介紹了數(shù)據(jù)結構與面向對象程序設計相關知識,《數(shù)據(jù)結構與面向對象程序設計(C++版)(第4版)》不僅非常適合于作為計算機及相關專業(yè)“數(shù)據(jù)結構”和“C++面向對象程序設計”的教材,也是計算機軟件開發(fā)人員的常備參考書。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載
數(shù)據(jù)結構與面向對象程序設計 PDF格式下載