圖書簡介
本書針對高等學校的大學生、研究生以及科技工作者與研究人員學習計算機軟體套用技術的需要,介紹了計算機軟體設計的基礎知識、方法與實用技術。書中主要內容包括集合與算法的基本概念、基本數據結構及其運算、查找與排序技術、資源管理技術、資料庫設計技術、編譯技術概述、套用軟體設計與開發技術。每章都配有一定數量的習題。
本書內容豐富、通俗易懂、實用性強,可作為高等學校的教材,也可作為廣大從事計算機套用工作的科技人員的參考書。
圖書目錄
1.1.1集合及其基本運算1
1.1.2自然數集與數學歸納法3
1.1.3笛卡兒積5
1.1.4二元關係5
1.2算法6
1.2.1算法的基本概念6
1.2.2算法設計基本方法8
1.2.3算法的複雜度分析13
習題15
基本數據結構及其運算 2.1數據結構的基本概念17
2.1.1什麼是數據結構17
2.1.2數據結構的圖形表示20
2.2線性表及其順序存儲結構22
2.2.1線性表及其運算22
2.2.2棧及其套用31
2.2.3佇列及其套用41
2.3線性鍊表52
2.3.1線性鍊表的基本概念52
2.3.2線性鍊表的插入與刪除56
2.3.3帶鏈的棧與佇列61
2.3.4循環鍊表68
2.3.5多項式的表示與運算71
2.4線性表的索引存儲結構78
2.4.1索引存儲的概念782.4.2“順序索引順序”存儲方式80
2.4.3“順序索引連結”存儲方式81
2.4.4多重索引存儲結構82
2.5數組83
2.5.1數組的順序存儲結構83
2.5.2規則矩陣的壓縮83
2.5.3一般稀疏矩陣的表示86
2.6樹與二叉樹112
2.6.1樹的基本概念112
2.6.2二叉樹及其基本性質115
2.6.3二叉樹的遍歷118
2.6.4二叉樹的存儲結構119
2.6.5穿線二叉樹124
2.6.6表達式的線性化136
2.7圖138
2.7.1圖的基本概念138
2.7.2圖的存儲結構139
2.7.3圖的遍歷143
2.7.4最短距離問題144
2.7.5圖鄰接表類146
習題155
查找與排序技術3.1基本的查找技術158
3.1.1順序查找158
3.1.2有序表的對分查找158
3.1.3分塊查找163
3.2哈希表技術164
3.2.1哈希表的基本概念164
3.2.2幾種常用的哈希表167
3.3基本的排序技術185
3.3.1冒泡排序與快速排序185
3.3.2簡單插入排序與希爾排序190
3.3.3簡單選擇排序與堆排序192
3.3.4其他排序方法簡介195
3.4二叉排序樹及其查找1993.4.1二叉排序樹的基本概念200
3.4.2二叉排序樹的插入201
3.4.3二叉排序樹的刪除202
3.4.4二叉排序樹查找204
3.5多層索引樹及其查找206
3.5.1B-樹207
3.5.2B+樹217
3.6拓撲分類227
3.7字元串匹配229
3.7.1字元串的基本概念229
3.7.2字元串匹配的KMP算法230
習題235
資源管理技術4.1作業系統的概念237
4.1.1作業系統的功能與任務237
4.1.2作業系統的發展過程238
4.1.3作業系統的分類241
4.2多道程式設計244
4.2.1並發程式設計244
4.2.2進程247
4.2.3進程之間的通信251
4.2.4多道程式的組織256
4.3存儲空間的組織257
4.3.1記憶體儲器的管理技術257
4.3.2外存儲器中檔案的組織結構261
習題268
資料庫設計技術5.1資料庫基本概念269
5.1.1資料庫技術與資料庫系統269
5.1.2數據描述274
5.1.3數據模型276
5.2關係代數280
5.3資料庫設計286
5.3.1資料庫設計的基本概念286
5.3.2資料庫設計的過程287
5.3.3數據字典293
習題295
編譯技術概述6.1編譯程式的工作過程及其基本組成297
6.1.1編譯程式的工作過程297
6.1.2編譯程式的基本組成298
6.2狀態矩陣法的編譯過程299
6.2.1狀態矩陣法的基本原理299
6.2.2狀態矩陣的壓縮300
6.3詞法分析302
6.3.1詞法分析的任務302
6.3.2讀字元程式303
6.3.3狀態矩陣法的詞法分析過程304
6.3.4算術常數的識別和翻譯307
6.4中間語言表示310
6.4.1波蘭表示310
6.4.2三元組表示312
6.5語法的分析與加工316
習題321
套用軟體設計與開發技術7.1軟體工程概述322
7.1.1軟體工程的概念322
7.1.2軟體生命周期322
7.1.3軟體支援環境325
7.2軟體詳細設計的表達326
7.2.1程式流程圖326
7.2.2NS圖327
7.2.3問題分析圖PAD329
7.2.4判定表329
7.2.5過程設計語言PDL330
7.3結構化分析與設計方法331
7.3.1套用軟體開發的原則和方法331
7.3.2結構化分析方法332
7.3.3結構化設計方法336
7.4測試與調試基本技術342
7.4.1測試342
7.4.2調試349
7.5軟體開發新技術351
7.5.1原型方法351
7.5.2瀑布模型352
7.5.3面向對象技術353
習題354
參考文獻355