C++類和數據結構

C++類和數據結構

《C++類和數據結構》是2009年清華大學出版社出版的圖書,作者是(美國)查爾茲 (Jeffrey S.Childs)。該書可作為計算機類專業或信息類相關專業的本科或專科教材,也可供從事計算機工程與套用工作的科技工作者參考。

基本介紹

  • 書名:C++類和數據結構
  • 頁數:401頁
  • 出版時間:第1版 (2009年1月1日)
  • 裝幀:平裝
圖書信息,作者簡介,內容簡介,目錄,

圖書信息

出版社: 清華大學出版社;
叢書名: 國外計算機科學經典教材
:
正文語種: 簡體中文
開本: 16
ISBN: 9787302191797
條形碼: 9787302191797
尺寸: 25.8 x 18.4 x 2.2 cm
重量: 762 g

作者簡介

作者:(美國)查爾茲 (Jeffrey S.Childs) 譯者:張傑良
Jeffrey S. Childs,先生擁有美國揚斯敦州立大學計算機科學專業的學士學位以及肯特州立大學的計算機科學碩士和博士學位。他致力於圖像高斯分解的研究,撰寫並發表了多篇該領域的論文。他開發了Quickstep算法,該算法在時間複雜度上大大優於現有的高斯分解算法。在過去的9年中,他一直在講授數據結構課程。此外,他還從事數據結構的研究,在基於客戶教學法設計、記憶體管理以及特定數據結構設計等領域都有所突破。目前,Jeffrey S.Childs博士是美國賓州克萊瑞恩大學的終身教授。

內容簡介

《C++類和數據結構》是一本適合於學生的C++數據結構指南,它基於現代軟體發展的現實和職業程式設計師的需求。《C++類和數據結構》首先從類的全面介紹入手,提供學生成功使用數據結構所需的基礎知識。接下來介紹了創建數據結構的方法,包括鍊表和可擴展/收縮的動態數組。解釋了時間複雜度對執行速度的影響方式,幫助程式設計師理解關鍵性能之間的權衡考慮。然後以這些為基礎,從散列表到二叉搜尋樹,詳細介紹了每一種常見的數據結構。《C++類和數據結構》還詳細設計了各種概念性的解釋,以幫助程式設計師使用任何現代程式語言。

目錄

第1章 結構和類
1.1 結構
1.2 類的基本概念
1.3 類的實現
1.4 類的測試
1.5 將函式定義放在類定義中
1.6 類的注釋
1.7 結構和類之間的區別
1.8 小結
1.9 練習
第2章 重載運算符、類模板和抽象
2.1 重載運算符
2.2 在Checkbook類中使用Check結構
2.3 類模板
2.4 類和抽象
2.5 小結
2.6 練習
第3章 類的更多內容
3.1 const限定符
3.2 構造函式
3.3 類的修改
3.4 修改Checkbook類保存支票歷史記錄
3.5 小結
3.6 練習
第4章 指針和動態數組
4.1 指針
4.2 [ ]運算符
4.3 動態分配記憶體
4.4 動態數組
4.5 delete操作符
4.6 對象指針
4.7 堆記憶體耗盡
4.8 可調數組
4.9 小結
4.10 練習
第5章 Array類
5.1 Array類模板
5.2 使用Array類
5.3 析構函式
5.4 複製構造函式
5.5 重載賦值運算符函式
5.6 示例
5.7 Array類的優缺點
5.8 標準模板庫
5.9 小結
5.10 練習
第6章 面向對象編程簡介
6.1 組合
6.2 繼承
6.3 多態
6.4 小結
6.5 練習
第7章 生成數據結構的方法
7.1 在數據結構中使用數組
7.2 鏈式結構簡介
7.3 鍊表編碼
7.3.1 鍊表代碼基礎
7.3.2 在鍊表中搜尋一個肯定存在的值
7.3.3 在鍊表中搜尋可能不存在的值
7.3.4 在鍊表的表頭插入一個結點
7.3.5 在鍊表中間插入一個結點
7.3.6 從鍊表中刪除一個包含鍊表中某個值的結點
7.3.7 使用header結點簡化代碼
7.3.8 刪除找到包含某值的結點
7.4 數組和鍊表的對比
7.4.1 數組和鍊表在速度上的比較
7.4.2 數組和鍊表在記憶體浪費上的比較
7.4.3 浪費記憶體分析
7.5 小結
7.6 練習
第8章 棧和佇列
8.1 棧ADT
8.2 棧的數組實現
8.3 棧的鍊表實現
8.4 佇列ADT
8.5 佇列的鍊表實現
8.6 佇列的其他鍊表實現
8.7 佇列的數組實現
8.8 小結
8.9 練習
第9章 時間複雜度簡介
9.1 時間複雜度基礎
9.2 常量階時間複雜度
9.3 大O表示法
9.4 對數階時間複雜度
9.5 折半搜尋算法
9.6 計算機速度:它來源於什麼地方
9.7 數據結構函式的時間複雜度
9.8 數組擴展和收縮的平攤分析
9.9 小結
9.10 練習
第10章 鍊表作為數據結構
10.1 列表ADT
10.2 在信息記錄中使用關鍵碼值
10.3 鍊表實現
10.3.1 鍊表說明檔案
10.3.2 鍊表實現檔案
10.4 其他實現
10.5 小結
10.6 練習
第11章 散列表
11.1 散列表ADT
11.2 散列函式和散列表設計
11.3 散列表的實現問題
11.4 函式指針
11.5 散列表實現
11.6 使用散列表實現
11.7 雙向鍊表的散列表實現
11.7.1 實現問題
11.7.2 DoublyLinkedList類的說明檔案
11.7.3 DoublyLinkedList類的實現檔案
11.8 小結
11.9 練習
第12章 優先權佇列、樹和堆
12.1 優先權佇列ADT
12.2 優先權佇列設計
12.3 樹
12.4 堆
12.5 使用單賦值交換
12.6 優先權佇列的堆實現(基於數組)
12.7 鏈(內嵌)堆設計
12.8 優先權佇列的鏈(內嵌)堆實現
12.9 小結
12.10 練習
第13章 遞歸
13.1 遞歸階乘函式
13.2 遞歸函式編寫原則
13.3 在鏈式結構上使用遞歸
13.4 遞歸函式的時間複雜度
13.5 小結
13.6 練習
第14章 排序算法簡介
14.1 堆排序
14.2 插入排序
14.3 快速排序
14.4 統計排序
14.5 鍊表排序
14.6 小結
14.7 練習
第15章 其他數據結構
15.1 二叉搜尋樹
15.2 BST和其他數據結構的對比
15.3 圖
15.4 鄰接矩陣和鄰接表之間的對比
15.5 小結
15.6 練習
附錄A 如何編譯及使用多檔案程式
A.1 Microsoft Visual Studio 2005 C++編譯器
A.2 編譯和運行使用類的代碼(不是類模板)
A.3 編譯和運行使用類模板的代碼
A.4 使用Microsoft Visual Studio 2005編寫代碼
A.5 在Microsoft Visual Studio 2005中打開一個已創建的項目
A.6 何種情況下事情會變亂
A.7 UNIX編譯器

相關詞條

熱門詞條

聯絡我們