《软件工程》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:赵春刚,陈仲民主编
  • 出 版 社:北京:中国林业出版社;北京:北京大学出版社
  • 出版年份:2003
  • ISBN:7503844299
  • 页数:219 页
图书介绍:本书主要介绍了软件和软件工程的基本概念、传统的面向过程的软件开发方法和面向对象的软件开发方法、软件编码、测试与维护技术等。

1.1 数据结构的概念 1

1.1.1 什么是数据结构 1

第1章 绪论 1

1.1.2 学习数据结构的意义 3

1.2 基本概念和术语 4

1.2.1 数据与数据元素 4

1.2.2 数据的逻辑结构 4

1.2.3 数据的存储结构 5

1.2.5 数据类型 6

1.2.6 抽象数据类型 6

1.2.4 数据运算 6

1.3 算法和算法分析 7

1.3.1 算法定义及描述 7

1.3.2 算法评价 8

1.3.3 算法性能分析与度量 10

本章小结 16

习题 16

第2章 C++程序设计基础知识 19

2.1 C++的基本操作 19

2.1.1 C++的基本输入与输出 19

2.1.2 函数及其参数传递 22

2.2.1 类定义 28

2.2 类与对象 28

2.2.2 对象定义与声明 29

2.2.3 类与对象的使用 29

2.2.4 对象数组 30

2.2.5 动态存储分配 31

2.2.6 构造函数与析构函数 32

2.2.7 继承和派生 34

2.2.8 虚函数 37

本章小结 39

习题 40

3.1.1 线性表的定义 42

3.1 线性表的定义及其运算 42

第3章 线性表 42

3.1.2 线性表的运算 43

3.1.3 线性表的抽象数据类型描述 44

3.2 线性表的顺序存储结构 44

3.2.1 顺序表结构 44

3.2.2 顺序表运算 45

3.2.3 顺序表存储空间的动态分配 49

3.3 线性表的链式存储结构 50

3.3.1 单链表结构 50

3.3.2 单链表运算 52

3.3.3 循环链表结构 59

3.3.4 双向链表结构 60

3.5 算法应用举例 62

3.4 顺序表与链式表的比较 62

本章小结 66

习题 67

第4章 栈和队列 70

4.1 栈 70

4.1.1 栈的抽象数据类型 70

4.1.2 顺序栈 71

4.1.3 链栈 73

4.1.4 栈的应用 75

4.2 队列 83

4.2.1 队列的抽象数据类型 83

4.2.2 顺序队列 83

4.2.3 链队列 86

4.2.4 队列的应用 89

4.3 递归 90

4.3.1 递归算法书写要点及方法 91

4.3.2 递归过程的调用和返回 91

4.3.3 递归的应用 92

4.3.4 递归函数的非递归化 93

本章小结 94

习题 94

第5章 串 97

5.1 C++语言的字符和字符串 97

5.1.1 C++语言的字符和字符串 97

5.2.1 串的基本概念 98

5.1.2 一个简单的C++函数 98

5.2 串及其基本运算 98

5.2.2 串的基本运算 99

5.3 串的顺序存储及基本运算 100

5.3.1 串的定长顺序存储 100

5.3.2 串的类定义 101

5.3.3 定长顺序串的基本运算 104

5.3.4 模式匹配 105

5.4 串的堆存储结构 110

5.4.1 串名的存储映像 110

5.4.2 堆存储结构 111

5.4.3 基于堆结构的基本运算 111

5.5 串的链式存储结构 113

5.6 串操作应用 114

5.6.1 文本编辑 114

5.6.2 中心对称串问题 116

本章小结 117

习题 117

第6章 数组和广义表 120

6.1 数组 120

6.1.1 数组的定义 120

6.1.2 数组的内存映像 121

6.2 特殊矩阵的压缩存储 121

6.2.2 三角矩阵 122

6.2.3 稀疏矩阵 122

6.2.1 对称矩阵 122

6.3 广义表 127

6.3.1 广义表的定义 127

6.3.2 广义表的存储 128

6.3.3 广义表基本操作的实现 129

本章小结 130

习题 130

第7章 树和二叉树 134

7.1 树的基本概念 134

7.1.1 树的定义及其表示 134

7.1.2 基本术语 136

7.2.2 二叉树的性质 137

7.2.1 二叉树的定义 137

7.2 二叉树 137

7.2.3 二叉树的存储结构 139

7.2.4 二叉树抽象数据类型 141

7.3 遍历二叉树 142

7.3.1 先序遍历 143

7.3.2 中序遍历 144

7.3.3 后序遍历 145

7.3.4 按层次遍历二叉树 146

7.3.5 遍历算法的应用举例 147

7.4 线索二叉树 149

7.4.1 线索的概念 149

7.4.3 线索的算法实现 151

7.4.2 线索的描述 151

7.4.4 线索二叉树上的运算 153

7.5 树与森林 155

7.5.1 树的存储结构 155

7.5.2 树、森林和二叉树的转换 157

7.5.3 树和森林的遍历 160

7.6 哈夫曼树 161

7.6.1 基本术语 162

7.6.2 哈夫曼树的建立 163

7.6.3 哈夫曼树的应用 168

本章小结 169

习题 169

8.1.1 图的定义 173

8.1.2 图的基本术语 173

第8章 图 173

8.1 图的基本概念 173

8.2 图的存储结构 175

8.2.1 邻接矩阵 175

8.2.2 邻接表 184

8.2.3 邻接多重表 194

8.3 图的遍历 195

8.3.1 深度优先遍历 196

8.3.2 广度优先遍历 198

8.4.1 连通图的生成树 200

8.4 生成树和最小生成树 200

8.4.2 最小生成树 201

8.5 最短路径 205

8.5.1 单源最短路径 205

8.5.2 所有顶点对之间的最短路径 208

8.6 有向无环图及其应用 210

8.6.1 拓扑排序 211

8.6.2 关键路径 214

本章小结 218

习题 218

9.2.1 顺序查找 222

9.2 静态查找表 222

9.1 基本概念 222

第9章 查找 222

9.2.2 有序表的查找 224

9.2.3 分块查找 225

9.3 动态查找表Ⅰ——树表查找 227

9.3.1 二叉排序树 227

9.3.2 平衡二叉树(AVL树) 232

9.3.3 B-树和B+树 239

9.4 动态查找表Ⅱ——哈希表查找(杂凑法) 243

9.4.1 常用的哈希方法 244

9.4.2 处理冲突的方法 245

9.4.3 哈希表的操作 248

习题 249

本章小结 249

第10章 排序 254

10.1 基本概念 254

10.2 插入排序 255

10.2.1 直接插入排序 255

10.2.2 二分插入排序 257

10.2.3 希尔排序 257

10.3 交换排序 259

10.3.1 冒泡排序 259

10.3.2 快速排序 260

10.4 选择排序 262

10.4.1 直接选择排序 262

10.4.2 树形选择排序 263

10.4.3 堆排序 264

10.5 归并排序 267

10.6 分配排序 269

10.6.1 多关键码排序 269

10.6.2 链式基数排序 270

10.7 各种内排序方法的比较和选择 273

10.7.1 各种内排序方法的比较 273

10.7.2 各种内排序方法的选择 273

本章小结 274

习题 274

参考文献 278