第Ⅰ部分 問題求解方法
第1章 程序設計與軟件工程基本原理 1
1.1 問題求解與軟件工程 1
1.2 完成模塊化設計 10
1.3 程序設計關鍵問題小結 15
第2章 遞歸:鏡子 32
2.1 遞歸解決方案 32
2.2 事件計數 49
2.3 數組檢索 55
2.4 組織數據 62
2.5 遞歸和效率 67
第3章 數據抽象:墻 76
3.1 抽象數據類型 76
3.2 規(guī)定ADT 80
3.3 實現ADT 90
第4章 鏈表 109
4.1 預備知識 109
4.2 鏈表程序設計 118
4.3 鏈表的變種 137
4.4 應用實例:維護庫存清單 143
第5章 問題求解的遞歸方法 153
5.1 回溯 153
5.2 定義語言 157
5.3 遞歸與數學歸納的關系 167
第Ⅱ部分 用抽象數據類型求解問題
第6章 棧 177
6.1 抽象數據類型 177
6.2 棧ADT的簡單應用 181
6.3 棧ADT的實現 185
6.4 應用:代數表達式 191
6.5 應用:檢索問題 195
6.6 棧和遞歸之間的關系 204
第7章 隊列 212
7.1 隊列 212
7.2 隊列ADT的簡單應用 213
7.3 隊列的實現 215
7.4 面向位置的ADT綜述 225
7.5 應用:仿真 226
第8章 類關系 238
8.1 繼承回顧 238
8.2 動態(tài)綁定和抽象類 246
8.3 ADT表和有序表回顧 254
8.4 面向對象方法的好處 262
第9章 算法效率與排序 267
9.1 算法效率的度量 267
9.2 排序算法及其效率 276
第10章 樹 303
10.1 術語 303
10.2 二叉樹ADT 309
10.3 二叉查找樹 326
10.4 通用樹 348
第11章 表格與優(yōu)先級隊列 357
11.1 表格ADT 357
11.2 優(yōu)先級隊列:表格的一種變體 371
第12章 表格的高級實現 389
12.1 平衡查找樹 389
12.2 散列法 416
12.3 多重組織的數據 431
第13章 圖 439
13.1 術語 439
13.2 圖ADT 442
13.3 圖的遍歷 445
13.4 圖的應用 449
第14章 外部方法 468
14.1 外部存儲器簡介 468
14.2 外部文件中的數據排序 470
14.3 外部表格 476
自測題答案 497