目 錄
第1章 算法和數(shù)據(jù)結構\t1
1.1 算法\t1
1.1.1 算法的概念\t1
1.1.2 算法復雜度\t4
1.2 數(shù)據(jù)結構的基本概念\t5
1.2.1 什么是數(shù)據(jù)結構\t5
1.2.2 數(shù)據(jù)結構的圖形表示\t7
1.2.3 線性結構與非線性結構\t8
1.3 線性表及其順序存儲結構\t9
1.3.1 線性表的基本概念\t9
1.3.2 線性表的順序存儲\t10
1.3.3 線性表的插入運算\t11
1.3.4 線性表的刪除運算\t12
1.4 棧和隊列\(zhòng)t14
1.4.1 棧及其基本運算\t14
1.4.2 隊列及其基本運算\t15
1.5 線性鏈表\t19
1.5.1 線性鏈表的基本概念\t19
1.5.2 線性鏈表的基本運算\t23
1.5.3 循環(huán)鏈表的結構及其基本運算\t25
1.6 樹與二叉樹\t26
1.6.1 樹的基本概念\t26
1.6.2 二叉樹及其基本性質\t28
1.6.3 二叉樹的存儲結構\t31
1.6.4 二叉樹的遍歷\t32
1.7 查找技術\t34
1.7.1 順序查找\t34
1.7.2 二分法查找\t34
1.8 排序技術\t35
1.8.1 插入類排序\t35
1.8.2 交換類排序\t37
1.8.3 選擇類排序\t39
1.8.3 各種排序方法的比較\t41
1.9 本章習題\t41
第2章 程序設計基礎\t44
2.1 程序設計方法與風格\t44
2.2 結構化程序設計\t46
2.2.1 結構化程序設計的原則\t46
2.2.2 結構化程序的基本結構與特點\t47
2.2.3 結構化程序設計原則和方法的應用\t48
2.3 面向對象的程序設計\t48
2.3.1 關于面向對象方法\t48
2.3.2 面向對象方法的基本概念\t51
2.4 本章習題\t55
第3章 軟件工程基礎\t58
3.1 軟件工程基本概念\t58
3.1.1 軟件定義與軟件特點\t58
3.1.2 軟件危機與軟件工程\t59
3.1.3 軟件工程過程與軟件生命周期\t60
3.1.4 軟件工程的目標與原則\t62
3.1.5 軟件開發(fā)工具與開發(fā)環(huán)境\t63
3.2 結構化分析方法\t64
3.2.1 需求分析與需求分析方法\t64
3.2.2 結構化分析方法\t65
3.2.2 軟件需求規(guī)格說明書\t70
3.3 結構化設計方法\t72
3.3.1 軟件設計的基本概念\t72
3.3.2 概要設計\t75
3.3.3 詳細設計\t82
3.4 軟件測試\t86
3.4.1 軟件測試的目的\t87
3.4.2 軟件測試的準則\t88
3.4.3 軟件測試技術與方法綜述\t88
3.4.4 軟件測試的實施\t95
3.5 程序的調試\t97
3.5.1 基本概念\t97
3.5.2 軟件調試方法\t99
3.6 本章習題\t100
第4章 數(shù)據(jù)庫設計基礎\t103
4.1 數(shù)據(jù)庫系統(tǒng)的基本概念\t103
4.1.1 數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)\t103
4.1.2 數(shù)據(jù)庫系統(tǒng)的發(fā)展\t106
4.1.3 數(shù)據(jù)庫系統(tǒng)的基本特點\t108
4.1.4 數(shù)據(jù)庫系統(tǒng)的內部結構體系\t109
4.2 數(shù)據(jù)模型\t111
4.2.1 數(shù)據(jù)模型概述\t111
4.2.2 E-R模型\t113
4.2.3 層次模型\t117
4.2.4 網狀模型\t118
4.2.5 關系模型\t118
4.2.4 數(shù)據(jù)操作\t120
4.2.5 關系中的數(shù)據(jù)約束\t121
4.3 關系代數(shù)\t121
4.3.1 傳統(tǒng)的集合運算\t121
4.3.2 專門的關系運算\t125
4.4 數(shù)據(jù)庫設計\t127
4.4.1 數(shù)據(jù)庫設計概述\t127
4.4.2 數(shù)據(jù)庫設計的需求分析\t128
4.4.3 數(shù)據(jù)庫概念設計\t129
4.4.4 數(shù)據(jù)庫的邏輯設計\t132
4.4.5 數(shù)據(jù)庫的物理設計\t133
4.4.6 數(shù)據(jù)庫管理\t133
4.5 本章習題\t134