作品简介
本书以海量图解的形式,详细讲解常用的数据结构与算法,又融入大量的竞赛实例和解题技巧。通过对本书的学习,读者可掌握12种初级数据结构、15种常用STL函数、10种二叉树和图的应用,以及8种搜索技术,并领悟不同的数据结构和算法的精髓,熟练应用各种算法解决实际问题。本书总计9章。第1章讲解C++语言基础,包括语法、函数、递归和数组;第2章讲解算法入门知识,包括算法复杂度计算、贪心算法、分治算法和STL应用;第3章讲解线性表的应用,包括顺序表、单链表、双向链表、循环链表和静态链表;第4章讲解栈和队列的应用,包括顺序栈、链栈、顺序队列和链队列;第5章讲解树的应用,包括树的存储、二叉树遍历与还原、哈夫曼编码;第6章讲解图论基础,包括图的存储、图的遍历和图的连通性;第7章讲解图的应用,包括最短路径、最小生成树、拓扑排序和关键路径;第8章讲解查找算法,包括哈希表、字符串模式匹配、二叉查找树和平衡二叉树;第9章讲解搜索技术,包括二分搜索、深度优先搜索、广度优先搜索和启发式搜索。本书面向对算法感兴趣的读者,无论是想扎实内功或参加算法竞赛的学生,还是想进入名企的学生、求职者,抑或是想提升技术的在职人员,都可以参考本书。若读者想学习数据结构与算法方面的进阶知识,则可参考《算法训练营:海量图解+竞赛刷题(进阶篇)》。
陈小玉,高级程序员,主要研究方向为算法优化和机器学习。出版著作有《趣学算法》《趣学数据结构》《算法训练营:海量图解+竞赛刷题(入门篇)》《算法训练营:海量图解+竞赛刷题(进阶篇)》,所教学生多次获得ACM、蓝桥杯等算法竞赛奖项。
作品目录
内容简介
前言
第1章 语言基础
1.1 开启算法之旅:hello world!
1.2 常见数据类型及其表达范围
1.3 玩转输入输出
1.4 人生就是不断地选择:if…else
1.5 每天都有很多次重复:for/while
1.6 如何轻松写一个函数
1.7 从前有座山,山里有座庙:递归之法
1.8 信息携带者:定义一个结构体
1.9 巧用数组——好玩贪吃蛇
1.10 玩转字符串——不一样的风格
第2章 算法入门
2.1 算法之美
2.2 贪心算法
2.3 分治算法
2.4 STL应用
第3章 线性表的应用
3.1 顺序表
3.2 单链表
3.3 双向链表
3.4 循环链表
3.5 静态链表
第4章 栈和队列的应用
4.1 顺序栈
4.2 链栈
4.3 顺序队列
4.4 链队列
第5章 树的应用
5.1 树
5.2 二叉树
5.3 二叉树遍历
5.4 哈夫曼树
第6章 图论基础
6.1 图的存储
6.2 图的遍历
6.3 图的连通性
第7章 图的应用
7.1 最短路径
7.2 最小生成树
7.3 拓扑排序
7.4 关键路径
第8章 查找算法
8.1 哈希表
8.2 字符串模式匹配
8.3 二叉查找树
8.4 平衡二叉树
第9章 搜索技术
9.1 二分搜索
9.2 深度优先搜索
9.3 广度优先搜索
9.4 启发式搜索
载入中