第1章 結構和類
1.1 結構
1.2 類的基本概念
1.3 類的實現
1.4 類的測試
1.5 將函數定義放在類定義中
1.6 類的注釋
1.7 結構和類之間的區(qū)別
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章 指針和動態(tài)數組
4.1 指針
4.2 〔〕運算符
4.3 動態(tài)分配內存
4.4 動態(tài)數組
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類的優(yōu)缺點
5.8 標準模板庫
5.9 小結
5.10 練習
第6章 面向對象編程簡介
6.1 組合
6.2 繼承
6.3 多態(tài)
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章 優(yōu)先級隊列、樹和堆
12.1 優(yōu)先級隊列ADT
12.2 優(yōu)先級隊列設計
12.3 樹
12.4 堆
12.5 使用單賦值交換
12.6 優(yōu)先級隊列的堆實現(基于數組)
12.7 鏈(內嵌)堆設計
12.8 優(yōu)先級隊列的鏈(內嵌)堆實現
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 統(tǒng)計排序
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中打開一個已創(chuàng)建的項目
A.6 何種情況下事情會變亂
A.7 UNIX編譯器