《算法与高级语言程序设计》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:高飞,白霞主编;薛艳明,聂青副主编
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2015
  • ISBN:9787121247125
  • 页数:276 页
图书介绍:本书采取理论与实践紧密结合的方法,以计算思维为导向,通过循序渐进的内容安排,通俗易懂的讲解方法,强调程序设计与算法的训练,使读者能够掌握C++语言的基本内容,并有一定的编程能力。本书主要内容包括:C++语言的基本概念、开发环境、各种数据类型、运算符、数据的输入输出、控制语句、函数、指针、预处理、结构体、共用体、文件等。

上篇 高级语言程序设计基础 3

第1章 C++语言概述 3

1.1 C++语言简介 3

1.2 C++语言的基本组成 4

1.2.1 基本字符集 4

1.2.2 词法记号 4

1.2.3 语句 4

1.2.4 标准函数库 5

1.3 数据类型 5

1.3.1 常量 5

1.3.2 变量 8

1.4 C++的运算规则与表达式 9

1.4.1 C++语言的运算规则 9

1.4.2 算术运算符与算术表达式 10

1.4.3 自增、自减运算 11

1.4.4 赋值运算符和赋值表达式 11

1.4.5 组合赋值运算符与组合赋值表达式 12

1.4.6 关系运算符与关系表达式 13

1.4.7 逻辑运算符与逻辑表达式 13

1.4.8 条件运算符与条件表达式 15

1.5 C++程序的基本结构、编写与实现 15

1.5.1 C++程序的基本结构 15

1.5.2 C++程序的编写与实现 18

小结 19

习题1 20

第2章 函数 21

2.1 函数的声明和调用 21

2.1.1 函数的声明 21

2.1.2 函数的调用 22

2.2 函数间的参数传递 23

2.2.1 值传递 23

2.2.2 函数参数为指针类型 24

2.3 带默认参数的函数 24

2.4 变量的存储属性 25

2.4.1 动态存储方式与静态存储方式 25

2.4.2 局部变量的存储属性 26

2.4.3 全局变量的存储属性 28

小结 30

习题2 30

第3章 数组、指针和结构 32

3.1 数组 32

3.1.1 一维数组 32

3.1.2 多维数组 33

3.1.3 字符数组和字符串 35

3.2 指针 38

3.2.1 指针的概念 38

3.2.2 指针变量定义 39

3.2.3 指针运算 39

3.3 指针与数组 41

3.3.1 指向数组的指针 41

3.3.2 指向字符串的指针 44

3.3.3 指针数组和指向指针的指针 45

3.4 指针与函数 46

3.4.1 指向函数的指针 46

3.4.2 返回指针值的函数 48

3.5 结构类型 49

3.5.1 结构类型的概念与定义 49

3.5.2 结构变量的说明 50

3.5.3 引用结构中的成员 51

3.5.4 结构的初始化 51

3.6 结构数组 51

3.7 结构指针 53

3.8 在函数之间传递结构 54

小结 56

习题3 57

第4章 C++类及其对象的封装性 58

4.1 从结构到类 58

4.1.1 复习结构 58

4.1.2 从结构提高到类 59

4.1.3 对象的创建和使用 63

4.2 类的成员函数 65

4.2.1 成员函数的定义方式 65

4.2.2 成员函数的访问属性 66

4.2.3 成员函数的执行效率 67

4.2.4 成员函数的存储方式 69

4.3 构造函数 71

4.3.1 对象初始化的要求 71

4.3.2 构造函数的形式 72

4.3.3 拷贝构造函数 77

4.4 析构函数 79

4.4.1 析构函数的形式 79

4.4.2 调用顺序 80

4.5 动态存储 81

4.5.1 内存分配与释放 81

4.5.2 避免内存泄漏 83

小结 84

习题4 85

第5章 引用、友元和重载 87

5.1 引用 87

5.1.1 引用的概念与理解 87

5.1.2 在函数通信中大显身手 89

5.2 友元 93

5.2.1 友元的定义 93

5.2.2 友元函数 94

5.2.3 友元成员 95

5.2.4 友元类 97

5.3 重载 99

5.3.1 函数重载 99

5.3.2 运算符重载 103

小结 114

习题5 114

第6章 继承 116

6.1 合成与继承 116

6.2 单继承 118

6.2.1 派生类的声明和构成 118

6.2.2 派生类成员的访问 119

6.2.3 派生类的构造函数和析构函数 126

6.3 多继承 132

6.3.1 声明多继承的方法 132

6.3.2 多继承派生类的构造函数 135

6.3.3 多继承引起的二义性问题 138

6.3.4 虚基类 141

小结 146

习题6 147

第7章 多态 150

7.1 继承呼唤多态 150

7.2 虚函数 151

7.2.1 虚函数的定义与调用 151

7.2.2 虚函数的特例 155

7.2.3 避免虚函数的误用 156

7.3 纯虚函数与抽象类 159

7.3.1 纯虚函数 159

7.3.2 抽象类 160

小结 162

习题7 162

第8章 模板 164

8.1 模板的概念 164

8.2 函数模板 164

8.2.1 函数模板和模板函数 164

8.2.2 函数模板的使用 167

8.2.3 重载模板函数 170

8.3 类模板 170

8.3.1 模板和模板类 170

8.3.2 类模板的派生 173

小结 173

习题8 173

下篇 算法分析与设计 177

第9章 算法导引 177

9.1 算法基础 177

9.1.1 算法 177

9.1.2 作为技术的算法 178

9.2 算法的设计和性能度量 179

9.2.1 函数的增长 179

9.2.2 标准记号与常用函数 182

小结 185

习题9 186

第10章 基本数据结构 187

10.1 线性表 187

10.1.1 线性表的逻辑结构 187

10.1.2 线性表的顺序表示和实现 187

10.1.3 线性表的链式表示和实现 189

10.2 栈和队列 192

10.2.1 栈 192

10.2.2 队列 195

10.3 哈希表 199

10.3.1 哈希表简介 199

10.3.2 哈希函数的构造方法 201

10.3.3 处理冲突的方法 203

10.3.4 哈希表的查找及其分析 205

10.4 树 206

10.4.1 树、二叉树和森林的基本概念 206

10.4.2 二叉树的遍历和树的遍历 211

10.4.3 二叉树的计数 212

小结 213

习题10 213

第11章 经典设计和分析技术 214

11.1 递归与分治法 214

11.1.1 二分检索问题 214

11.1.2 递归的概念 215

11.1.3 分治法的基本思想 216

11.1.4 分治法的应用 217

11.2 贪心算法 228

11.2.1 活动选择问题 228

11.2.2 贪心算法的基本思想 230

11.2.3 贪心算法的应用 231

11.3 动态规划 234

11.3.1 钢条切割问题 235

11.3.2 动态规划的基本思想 237

11.3.3 动态规划的应用 239

11.4 经典算法蕴涵的计算思维在其他学科的泛化 242

习题11 244

第12章 图的算法 246

12.1 图的基本算法 246

12.1.1 图的表示 246

12.1.2 广度优先搜索 258

12.1.3 深度优先搜索 259

12.1.4 拓扑排序 260

12.2 最小生成树 262

12.2.1 最小生成树的形成 262

12.2.2 Kruskal算法和Prim算法 263

12.3 单源最短路径 269

12.3.1 有向无环图的单源最短路径 270

12.3.2 Dijkstra算法 272

12.4 图算法蕴涵的计算思维在其他学科的泛化 274

习题12 275

参考文献 277