简介
本书精选了大量综合编程案例,基本上涵盖了当前基础算法领域的热点问题。本书共有8章,分别为字元串,排序和查找,栈、鍊表与伫列,树与图,递归与分治器,集合与映射,Win32 GUI编程基础,综合编程课程设计实例。
目录
第1章 字元串处理
1.1 字元串基本操作 1
1.1.1 字元串拷贝 1
1.1.2 字元串连线 3
1.1.3 反转字元串 6
1.1.4 大小写转换 8
1.1.5 字元串与数的转换 10
1.1.6 字元串查找 14
1.1.7 删除字元 16
1.1.8 字元串字典比较 17
1.2 字元串处理常见问题 20
1.2.1 居民身份证号的表示 20
1.2.2 std::string与const char*转换 21
1.2.3 字元串与buffer缓冲 21
1.2.4 设定浮点数精度 22
1.2.5 得到一行输入的字元串 23
1.2.6 统计一行文本中单词个数 24
1.2.7 std::stream的高速缓冲方法 25
1.3 综合编程实例:公民数据模拟 27
第2章 排序和查找
2.1 桶排序(bucket sort) 34
2.2 qsort排序 34
2.2.1 整型数组的qsort 35
2.2.2 浮点型数组的qsort 36
2.2.3 字元型数组的qsort 37
2.2.4 字元串数组的qsort 38
2.2.5 结构类型数组的qsort 40
2.3 std::sort排序 43
2.3.1 std::sort基本用法 44
2.3.2 std::greater基本用法 46
2.3.3 自定义类型排序 46
2.4 二分查找算法 48
2.5 std::find查找 51
2.6 综合编程实例 52
第3章 栈、鍊表与伫列
3.1 栈 64
3.1.1 std::stack 64
3.1.2 综合编程实例 65
3.2 鍊表 74
3.2.1 std::list 75
3.2.2 综合编程实例 77
3.3 伫列 80
3.3.1 std::queue 80
3.3.2 std::deque 81
3.3.3 综合编程实例:卡片游戏 82
第4章 树与图
4.1 二叉树 84
4.1.1 完全二叉树 84
4.1.2 二叉树遍历 85
4.1.3 手写二叉树的遍历 86
4.1.4 二叉树高度计算 87
4.1.5 二叉树删除 88
4.1.6 综合编程实例 88
4.2 图 102
4.2.1 图的基本操作 102
4.2.2 图的表示方法 102
4.2.3 综合编程实例 103
第5章 递归与分治
5.1 汉诺塔 112
5.2 子串组合 113
5.3 数组组合 115
5.4 格子排列 118
5.5 八皇后 122
5.6 循环赛日程安排 124
5.7 棋盘覆盖 128
第6章 集合与映射
6.1 集合 132
6.1.1 std::set 132
6.1.2 集合求交 set_intersection 133
6.1.3 集合求并 set_union 135
6.1.4 集合求差 set_difference 136
6.1.5 综合编程实例:集合相似度 137
6.2 映射 139
6.2.1 std::map 139
6.2.2 std::multimap 140
6.3 哈希映射 142
6.3.1 常用的哈希函式 142
6.3.2 哈希冲突的处理方法 142
6.3.3 综合编程实例 143
第7章 Win32 GUI编程基础
7.1 Win32 GUI 148
7.1.1 CodeBlocks第一个Win32教程 148
7.1.2 Visual Studio 2015第一个Win32 GUI程式 150
7.1.3 代码分析 151
7.2 Win32 讯息基础 155
7.2.1 视窗关闭讯息WM_CLOSE 155
7.2.2 视窗大小调整讯息 WM_SIZE 156
7.2.3 视窗创建讯息 WM_CREATE 157
7.2.4 选单或其他按钮讯息 WM_COMMAND 158
7.2.5 滑鼠讯息 159
7.2.6 绘製讯息WM_PAINT 160
7.2.7 键盘讯息WM_KEYDOWN 和 WM_KEYUP 161
7.3 综合编程实例:简单多边形的创建、绘製、平移与旋转 162
7.4 Win32 图形设备接口GDI 176
7.4.1 线段和曲线绘製 177
7.4.2 笔、画刷、填充绘製 180
7.4.3 字型和文本 184
7.4.4 光栅操作 186
7.4.5 双缓冲机制 188
第8章 综合编程实例
8.1 扑克洗牌 190
8.2 二叉树重建可视化 194
8.3 L-System分形树建模 204
8.4 迷宫问题 218
参考文献 226