1
数据结构
数据结构.............................................................................................................................1
1. 队列(Queue) ...........................................................................................................2
2. 集合..............................................................................................................................3
3. 链表..............................................................................................................................3
4. 关联数组......................................................................................................................3
5. 栈..................................................................................................................................3
6. 树..................................................................................................................................3
7. bitset(位图).............................................................................................................5
8. 堆..................................................................................................................................5
2
1. 队列(Queue)
操作受限的线性表数据结构
先进先出,FIFO
顺序队列
链式队列
循环队列
阻塞队列
生产者消费者模型
并发队列
3
锁
CAS机制
compare and swap
属于乐观锁
不断自旋检测是否满足需要
缺点:开销大,因为是不断自旋;只能保证一个变量,不能保证代码块,代码
块需要用Synchronized。
存在ABA问题
ABA问题可以通过增加版本号来解决。
2. 集合
set
3. 链表
list
4. 关联数组
map
5. 栈
线程安全
内部使用数组,不够翻倍
6. 树
4
二叉树
两个叶子节点
二叉树遍历
前序遍历
先本身,再左,再右
中序遍历
先左,再本身,再右
后续遍历
先左,再右,再本身
时间复杂度On
完全二叉树
满足二叉树特征
叶子节点靠左排列,因为如果是数组的存储方式,完全二叉树可以节省空间
平衡二叉树
包括完全二叉树,满二叉树
任意一个节点左右子树高度相差不能大于1
二叉查找树
满足二叉树特征
5
任意一个节点,其左树中所有的值都小于这个节点的值,右边都大于这个节点
的值
红黑树
根节点是黑色
每个叶子节点都是黑色的空节点,也就是说叶子节点不存储数据。
任何相邻节点不能同时为红色,也就是说红色节点时被黑色节点隔开的。
每个节点,从该节点到达其可达叶子节点的所有路径,所包含相同数目的黑色
节点。
B,b+,b*树
Mysql索引结构
LSM树
LSM-tree是专门为key-value存储系统设计的
适用于写入频繁,查询不频繁的场景
7. bitset(位图)
布隆过滤器
8. 堆
堆是一个完全二叉树
任何一个阶段都大于左右节点的值
数据结构
最新推荐文章于 2023-11-08 11:06:42 发布