第1章 程序設計基本原理 1
1.1 算法 1
1.1.1 算法的概念 1
1.1.2 算法的特性 2
1.1.3 算法的分析 2
1.2 算法描述工具 4
1.2.1 程序流程圖 4
1.2.2 N-S流程圖 7
1.3 模塊 8
1.3.1 內聚度 9
1.3.2 耦合度 10
1.3.3 局部化和信息隱藏 11
練習題 12
第2章 結構化程序設計 13
2.1 結構化程序設計概述 13
2.1.1 程序設計的發(fā)展過程 13
2.1.2 結構化程序設計思想 13
2.2 結構化程序設計方法 18
2.2.1 模塊化程序設計方法 18
2.2.2 自頂向下、逐步求精的方法 20
2.3 結構化程序設計實例 22
練習題 24
第3章 程序的風格 25
3.1 變量的命名 26
3.2 程序的注釋 27
3.3 布局 29
3.4 表達式和語句 31
3.5 程序設計風格實例 33
練習題 34
第4章 常用算法 35
4.1 窮舉算法 36
4.2 遞推算法 38
4.3 遞歸算法 40
4.4 算法實例 44
練習題 47
第5章 應用數(shù)據(jù)結構 48
5.1 數(shù)據(jù)結構的基本概念 48
5.1.1 什么是數(shù)據(jù)結構 48
5.1.2 數(shù)據(jù)結構的常用術語 49
5.2 線性表 50
5.2.1 線性表的概念 50
5.2.2 線性表的順序存儲 51
5.2.3 線性表的鏈式存儲 53
5.2.4 順序表和鏈表的比較 60
5.2.5 線性表應用實例 60
5.3 棧和隊列 68
5.3.1 棧 68
5.3.2 棧的應用實例 72
5.3.3 隊列 74
5.3.4 隊列的應用實例 80
5.4 串 83
5.4.1 串及其運算 83
5.4.2 串的存儲結構 85
5.4.3 串運算的實現(xiàn) 86
5.5 多維數(shù)組和廣義表 88
5.5.1 多維數(shù)組 88
5.5.2 數(shù)組的順序表示 89
5.5.3 矩陣的壓縮存儲 89
5.5.4 廣義表 95
5.6 樹 97
5.6.1 樹 97
5.6.2 二叉樹 98
5.6.3 二叉樹的遍歷 102
5.6.4 樹和森林 104
5.6.5 哈夫曼樹及其應用 108
5.6.6 樹的應用實例 113
5.7 圖 117
5.7.1 圖的概念 117
5.7.2 圖的存儲結構 119
5.7.3 圖的遍歷 122
5.7.4 生成樹和最小生成樹 124
5.7.5 最短路徑 126
5.8 查找 128
5.8.1 基本概念 128
5.8.2 線性表的查找 129
5.8.3 二叉排序樹 133
5.9 排序 135
5.9.1 基本概念 135
5.9.2 直接插入排序 136
5.9.3 交換排序 138
5.9.4 選擇排序 142
5.9.5 歸并排序 147
練習題 148
第6章 程序的測試 151
6.1 軟件工程概述 151
6.1.1 什么是軟件工程 151
6.1.2 軟件生存周期 152
6.2 測試的概念 154
6.2.1 什么是程序測試 154
6.2.2 程序測試的原則 154
6.3 測試用例設計 155
6.3.1 白盒測試 155
6.3.2 黑盒測試 158
6.3.3 綜合測試策略 161
6.4 程序測試的步驟 161
6.4.1 單元測試 161
6.4.2 集成測試 162
6.4.3 確認測試 162
6.4.4 系統(tǒng)測試 163
6.5 程序測試的方式 163
6.6 測試實例分析 164
練習題 166
第7章 實訓 167
實訓1 算法描述 167
實訓2 結構化程序設計 168
實訓3 程序設計的風格 169
實訓4 常用算法 170
實訓5 線性表 171
實訓6 棧和隊列 173
實訓7 串 173
實訓8 樹 174
實訓9 圖 175
實訓10 排序與查找 175
實訓11 測試 176