下面是导图的目录结构:
不要小看这张导图(这可是武功秘籍,秘籍已经有了,好好练,神功指日可待),只要你跟着这个导图去复习数据结构与算法,里面的知识点都搞透彻,面试数据结构问题基本难不倒你了。
这么好的东西都送了,那还说什么,赶紧关注走一波,主页Q群加一加
数据结构与算法的重要性,我必须强调一波。不管你学什么编程语言,不管你从事前端、后台、算法、数据挖掘、机器学习、人工智能等岗位,数据结构与算法都是绕不过去的。语言无关性,岗位无关性。数据结构与算法在面试中也是频频出现,基本一场面试有50%以上的时间再问这方面的内容。就这,你还敢不学好数据结构与算法么?
数据结构与算法
基本概念&术语
数据&数据元素&数据项&数据对象
逻辑结构&存储结构
- 逻辑结构
- 线性结构
【线性表】
【 一般线性表】
(线性表)
【特殊线性表】
(栈和队列)
(字符串)
【线性表的推广】
(数组)
(广义表)
- 非线性结构
【树结构】
【树】
【二叉树】
【图结构】
【有向图】
【无向图】
- 存储结构
- 顺序存储结构
- 链式存储结构
数据类型&抽象数据类型
算法&算法分析
- 算法是为了解决某类问题而规定的一个有限长的操作序列
- 算法特性
- 有穷性
- 确定性
- 可行性
- 有效的输入
- 算法输出
- 评价算法优劣
- 正确性
- 可读性
- 健壮性
- 高效性
- 算法效率分析
- 算法的时间复杂度
- 算法的空间复杂度
线性结构
线性表
- 顺序表示
- 顺序表:逻辑&物理 次序上均相邻
- 链式表示
- 单链表
- 双链表
- 循环链表
- 链表和顺序表的比较
- 空间维度比较
- 时间维度比较
- 链表和顺序表的面试笔试题
- 线性表的推广
- 数组
- 广义表
栈
- 栈的定义&特性
- 后入先出
- 栈的表示&常用操作
- 顺序栈&链式栈
- 入栈&出栈
- 栈与递归
- 栈的应用
队列
- 队列的定义&特性
- 先入先出
- 队列的表示&常用操作
- 循环队列&链式队列
- 出队&入队
- 队列的应用
串
- 串的概念
- 串的结构
- 顺序存储
- 链式存储
- 串的匹配算法
- BF算法
- KMP算法
非线性结构
树
- 树的基本概念
- 二叉树
- 性质&存储结构
- 二叉树的遍历
- 线性二叉树
- 二叉树的建立
- 哈弗曼树
- 基本概念
- 构造算法
- 哈夫曼编码
- AVL树
- B树
图
- 概念
- 存储结构
- 邻接表
- 邻接矩阵
- 十字链表
- 邻接多重表
- 边集数组
- 遍历
- 深度优先遍历
- 广度优先遍历
- 应用
- 小生成树
- 短路径
- 拓扑排序
- 关键路径
数据结构
自顶向下的伸展树
红黑树
- 插入
- 插入时的旋转经常考
- 删除
确定性跳跃表
AA树
treap树
k-d树
配对堆
算法
查找
- 概念
- 线性表查找
- 顺序查找
- 二分查找
- 分块查找
- 树形查找
- 二叉树查找
- AVL树查找
- B-树
- B+树
- 哈希查找
- 概念
- 冲突解决
排序
- 概念
- 冒泡排序
- 选择排序
- 插入排序
- 希尔排序
- 堆排序
- 归并排序
- 快速排序
- 基数排序
- 桶式排序
- 大型数据结构的排序
- 外部排序(非内存的方式排序)