第1章 概述
1. 1 軟件的基本概念
1. 1. 1 軟件應用
1. 1. 2 軟件危機與神話
1. 2 軟件技術
1. 3 程序設計技術
1. 3. 1 明確需求
1. 3. 2 設計
1. 3. 3 編碼
1. 3. 4 測試
1. 4 程序性能考慮
1. 5 數據結構與算法設計
1. 5. 1 數據結構的引入
1. 5. 2 數據結構的基本概念
1. 5. 3 數據結構與算法
1. 5. 4 算法及其復雜性
1. 6 設計程序所需的基礎知識和基本能力
習題
第2章 高級程序設計方法
2. 1 引言
2. 2 程序設計的關鍵技術
2. 2. 1 程序結構設計
2. 2. 2 模塊設計
2. 3 程序設計步驟
2. 4 程序設計實例
2. 4. 1 問題與分析
2. 4. 2 處理問題的流程與問題分解
2. 4. 3 程序結構
2. 4. 4 模塊設計
2. 4. 5 數據結構設計
2. 4. 6 程序的實現
2. 4. 7 完整程序
習題
第3章 編寫好程序
3. 1 命名
3. 2 表達式和語句
3. 3 一致性和習慣用法
3. 4 函數宏
3. 5 神秘的數
3. 6 注釋
3. 7 界面
3. 7. 1 一個原型庫
3. 7. 2 通用函數庫設計
3. 7. 3 界面原則
3. 7. 4 資源管理
3. 7. 5 用戶界面
習題
第4章 排錯與測試
4. 1 排錯
4. 1. 1 排錯系統
4. 1. 2 尋找錯誤線索
4. 1. 3 無線索, 難辦的錯誤
4. 1. 4 最后的手段
4. 1. 5 不可重現的錯誤
4. 1. 6 其他人的程序錯誤
4. 2 測試
4. 2. 1 在編碼過程中測試
4. 2. 2 系統化測試
4. 2. 3 測試自動化
4. 2. 4 測試環(huán)境
4. 2. 5 應力測試
4. 2. 6 測試秘訣
4. 2. 7 測試用例設計的一般原則
4. 2. 8 測試用例設計的具體方法
習題
第5章 程序性能
5. 1 瓶頸
5. 2 計時與輪廓
5. 2. 1 自動計時測量
5. 2. 2 使用輪廓程序
5. 3 加速策略
5. 4 代碼調整
5. 5 存儲優(yōu)化
習題
第6章 線性表
6. 1 線性表的基本概念及運算
6. 2 順序表
6. 2. 1 順序表的基本運算
6. 2. 2 順序表的應用實例--學生學籍檔案管理
6. 3 鏈表
6. 3. 1 單鏈表
6. 3. 2 單鏈表的基本運算
6. 3. 3 循環(huán)鏈表
6. 3. 4 向鏈表
6. 3. 5 鏈表應用實例--多項式的表示及運算
習題
第7章 串和數組
7. 1 串及其運算
7. 2 串的存儲結構
7. 3 串運算的實現
7. 3. 1 基本運算的實現
7. 3. 2 改進的模式匹配算法
7. 4 數組的定義和運算
7. 5 數組的順序存儲結構
7. 6 矩陣的壓縮存儲
7. 6. 1 特殊矩陣
7. 6. 2 稀疏矩陣
習題
第8章 棧和隊列
8. 1 棧
8. 1. 1 棧的順序存儲表示--順序棧
8. 1. 2 棧的鏈式存儲結構--鏈棧
8. 1. 3 棧的應用
8. 2 隊列
8. 2. 1 隊列的存儲結構
8. 2. 2 隊列應用舉例
習題
第9章 樹
9. 1 樹的基本概念
9. 2 二叉樹
9. 3 二叉樹的存儲結構
9. 3. 1 順序存儲結構
9. 3. 2 鏈式存儲結構
9. 3. 3 二叉樹建立
9. 4 二叉樹的遍歷
9. 4. 1 二叉樹的深度優(yōu)先遍歷
9. 4. 2 二叉樹的廣度優(yōu)先遍歷
9. 4. 3 深度優(yōu)先的非遞歸算法
9. 4. 4 從遍歷序列恢復二叉樹
9. 4. 5 遍歷算法的應用
9. 5 樹和森林
9. 5. 1 樹的存儲結構
9. 5. 2 樹. 森林和二叉樹之間的轉換
9. 6 線索二叉樹
9. 6. 1 線索二叉樹的建立
9. 6. 2 訪問線索二叉樹
9. 7 二叉樹的應用
9. 7. 1 哈夫曼樹及應用
9. 7. 2 二叉排序樹
習題
第10章 圖
10. 1 圖的基本概念
10. 2 圖的存儲方法
10. 2. 1 鄰接矩陣
10. 2. 2 鄰接表
10. 3 圖的遍歷
10. 3. 1 深度優(yōu)先搜索遍歷
10. 3. 2 廣度優(yōu)先搜索遍歷
10. 4 生成樹和最小生成樹
10. 5 最短路徑
10. 5. 1 從某個源點到其余各頂點的最短路徑
10. 5. 2 每一對頂點之間的最短路徑
10. 6 拓撲排序
10. 7 關鍵路徑
習題
第11章 索引結構與散列技術
11. 1 索引結構
11. 1. 1 線性索引
11. 1. 2 倒排表
11. 1. 3 多級索引
11. 2 散列技術
11. 2. 1 散列表的概念
11. 2. 2 散列函數的構造
11. 2. 3 解決沖突的幾種方法
11. 2. 4 散列表的查找及分析
習題
第12章 縮小規(guī)模算法
12. 1 分治與遞歸算法
12. 1. 1 遞歸算法設計
12. 1. 2 分治算法設計
12. 2 動態(tài)規(guī)劃
12. 2. 1 動態(tài)規(guī)劃算法的基本要素
12. 2. 2 動態(tài)規(guī)劃應用--圖像壓縮
12. 2. 3 最優(yōu)二叉搜索樹
12. 3 貪心算法
12. 3. 1 貪心算法與動態(tài)規(guī)劃算法的差異
12. 3. 2 貪心算法應用之哈夫曼編碼
12. 3. 3 貪心算法應用之單源最短路徑
習題
第13章 搜索算法
13. 1 回溯法
13. 1. 1 回溯法的算法框架
13. 1. 2 最大團問題
13. 1. 3 圖的m著色問題
13. 1. 4 旅行售貨員問題
13. 2 分支界限法
13. 2. 1 分支界限法的基本思想
13. 2. 2 裝載問題
13. 2. 3 布線問題
習題
第14章 難問題求解算法
14. 1 概率算法
14. 1. 1 數值概率算法
14. 1. 2 舍伍德算法
14. 1. 3 拉斯維加斯算法
14. 1. 4 蒙特卡羅算法
14. 2 近似算法
14. 2. 1 頂點覆蓋問題的近似算法
14. 2. 2 旅行售貨員問題的近似算法
14. 2. 3 集合覆蓋問題的近似算法
習題
參考文獻