作品简介

本书以海量图解的形式,详细讲解常用的数据结构与算法,又融入大量的竞赛实例和解题技巧。通过对本书的学习,读者可掌握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 启发式搜索
展开全部