《数据结构与算法综合实践》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:胡燕,钟忺,袁景凌主编;马庆槐副主编
  • 出 版 社:武汉:武汉理工大学出版社
  • 出版年份:2016
  • ISBN:9787562944232
  • 页数:208 页
图书介绍:本书结合企业实用软件开发技术,对栈、队列、串、二叉树、图等重要数据结构和算法中知识单元进行了分析和设计,并在重点训练每一个知识单元编程实践的基础上,结合C++、MFC Dialog可视化界面和GDI绘图等实用开发技术,通过一个游戏项目贯穿数据结构与算法核心知识,采用迭代开发思路进行每一个功能开发,既应用线性结构知识进行案例编程实践,又应用非线性结构知识进行案例重构,完整训练核心知识单元在企业真实项目中应用。

1概述 1

1.1 实践目标 1

1.2 内容安排 1

1.3 开发环境 3

第一部分 技术专题 6

2栈与表达式求值实践 6

2.1 实验目标 6

2.2 实验任务 6

2.3 分析和设计 7

2.3.1 表达式组成 7

2.3.2 核心算法 7

2.3.3 栈(stack) 9

2.4 编码实现 14

2.4.1 创建工程 14

2.4.2 定义栈(链表) 16

2.4.3 表达式解析 17

2.4.4 比较操作符 21

2.4.5 表达式计算 23

2.4.6 最终结果 25

2.5 调试和运行 26

习题 27

3队列与停车场管理程序实践 28

3.1 实验目标 28

3.2 实验任务 28

3.3 分析和设计 30

3.3.1 数据结构 30

3.3.2 业务流程 32

3.3.3 技术分析 33

3.4 编码实现 39

3.4.1 创建工程 39

3.4.2 定义数据结构 42

3.4.3 车辆入场 44

3.4.4 车辆离开 46

3.4.5 查看停车场 48

3.5 调试和运行 50

习题 51

4串与字符串替换程序实践 53

4.1 实验目标 53

4.2 实验任务 53

4.3 分析和设计 54

4.3.1 数据结构 54

4.3.2 业务流程 55

4.3.3 定位子串在主串的位置 56

4.3.4 字符串的替换 56

4.4 编码实现 56

4.4.1 创建工程 56

4.4.2 定义串的存储结构 57

4.4.3 串的基本操作 57

4.4.4 主函数 61

4.4.5 扩展优化 63

4.5 调试和运行 63

习题 64

5二叉树与赫夫曼图片压缩实践 66

5.1 实验目标 66

5.2 实验任务 66

5.3 分析和设计 69

5.3.1 Huffman树 70

5.3.2 Huffman编码 72

5.3.3 压缩过程 74

5.3.4 压缩与解压 76

5.3.5 文件操作 77

5.4 编码实现 77

5.4.1 创建工程 77

5.4.2 读取原文件 79

5.4.3 生成Huffman树 80

5.4.4 生成Huffman编码 82

5.4.5 压缩原文件 84

5.4.6 保存压缩文件 88

5.4.7 扩展功能 90

5.5 调试和运行 91

习题 91

6图与景区信息管理系统实践 93

6.1 实验目标 93

6.2 实验任务 93

6.3 分析和设计 96

6.3.1 程序设计 96

6.3.2 界面设计 97

6.3.3 算法设计 97

6.3.4 数据结构设计 98

6.4 编码实现 99

6.4.1 创建工程 99

6.4.2 定义图 100

6.4.3 查询景点信息 103

6.5 调试和运行 104

习题 105

7深度优先搜索与旅游景点导航实践 106

7.1 实验目标 106

7.2 实验任务 106

7.3 分析和设计 106

7.4 编码实现 108

7.4.1 导入工程 108

7.4.2 遍历景区景点图(一条路线) 109

7.4.3 优化遍历算法(多条路线) 110

7.5 调试和运行 111

习题 112

8 Dijkstra算法与搜索最短路径实践 113

8.1 实验目标 113

8.2 实验任务 113

8.3 分析和设计 113

8.4 编码实现 114

8.4.1 导入工程 115

8.4.2 搜索最短路径 115

8.4.3 查询最短路径 115

8.5 调试和运行 116

习题 117

9最小生成树与铺设电路规划实践 118

9.1 实验目标 118

9.2 实验任务 118

9.3 分析和设计 118

9.4 编码实现 120

9.4.1 导入工程 120

9.4.2 构建最小生成树 121

9.4.3 查询铺设电路规划图 121

9.5 调试和运行 121

习题 122

第二部分 综合实践 124

10线性结构与连连看游戏综合实践 124

10.1 实践目标 124

10.2 需求分析 124

10.2.1 项目简介 124

10.2.2 游戏规则 125

10.2.3 功能简介 126

10.3 系统设计 127

10.3.1 界面设计 127

10.3.2 程序结构设计 128

10.3.3 数据结构设计 128

10.3.4 算法设计 130

10.4 创建工程 134

10.4.1 功能需求 134

10.4.2 设计思路 135

10.4.3 编码实现 135

10.5 主界面 141

10.5.1 功能需求 141

10.5.2 设计思路 141

10.5.3 编码实现 142

10.6 开始游戏 145

10.6.1 功能需求 145

10.6.2 设计思路 147

10.6.3 编码实现 151

10.7 消子判断 162

10.7.1 功能需求 162

10.7.2 设计思路 163

10.7.3 编码实现 165

10.8 判断胜负 176

10.8.1 功能需求 176

10.8.2 设计思路 176

10.8.3 编码实现 177

11非线性结构与连连看游戏综合实践 179

11.1 实践目标 179

11.2 需求分析 179

11.3 系统设计 180

11.3.1 程序结构设计 180

11.3.2 数据结构设计 181

11.3.3 开局与重排算法 182

11.3.4 消子判断算法 183

11.3.5 消子算法 184

11.3.6 胜负判断算法 184

11.4 创建工程 184

11.5 主界面 184

11.6 开始游戏 184

11.6.1 功能需求 184

11.6.2 设计思路 184

11.6.3 编码实现 187

11.7 相邻同色消子 191

11.7.1 功能需求 191

11.7.2 设计思路 191

11.7.3 编码实现 193

11.8 消子判断 194

11.8.1 功能需求 194

11.8.2 设计思路 194

11.8.3 编码实现 195

11.9 判断胜负 198

11.9.1 功能需求 198

11.9.2 设计思路 198

11.9.3 编码实现 199

11.10 扩展功能 200

11.10.1 提示 200

11.10.2 重排 200

12附录 201

12.1 参考资料 201

12.2 C++编码规范 201

12.2.1 基本原则 201

12.2.2 命名标准 201

12.2.3 注释规范 203

12.2.4 编码规范 204

12.2.5 排版规范 204

12.3 MFC应用程序介绍 204