与集合相关的数据结构
作者:互联网
目录
与集合相关的数据结构
1.栈
特点:先进后出
2.队列
特点:先进先出(像排队一样)
3.数组
特点:查询快,增删慢(好查询元素,不好增加删除元素)
查询快:通过索引快速定位
增删慢:增或删都是通过创建一个全新的数组,然后销毁旧的数组。
如下,图解更好理解
4.链表
特点:查询慢,增删快(不好查元素,好增加删除元素)
5.红黑树
个人理解:
记住红黑树性质
- 每个节点不是红色就是黑色,一定要是红黑相间
- 根节点都是黑色才行
- 每个叶子节点(就是最底层最下面的那个空的节点)的两个子节点一定都是黑色
- 每一条路径上都有相同数量的黑色节点,俗称:黑高。(就是如果只看黑色,褐色的层数就是一样的,也可以说是一样高)
- 如果一个节点存在黑子节点,那么该节点一定有两个子节点
理解红黑树的自平衡
红黑树的自平衡靠三种操作:变色,左旋和右旋。
变色:黑变红或红变黑
左旋:先要知道旋转点是谁,假如旋转点是P,然后就要去操作旋转点P,让这个旋转点P的右子节Q去取代旋转点的位置,让P变成了Q的左子节点,同时原本Q的左子节点会变成P的右子节点~
右旋:先要知道旋转点是谁,假如旋转点是P,然后就要去操作旋转点P,让这个旋转点P的左子节Q去取代旋转点的位置,让P变成了Q的右子节点,同时原本Q的右子节点会变成P的左子节点~
了解LL双红、LR双红、RL双红、RR双红
LL双红:先变色,再右旋
LR双红:先左旋,再变色,再右旋
RL双红:先右旋,再变色,再左旋
RR双红:先变色,再左旋
下面是一个例子,用来帮助我们更深刻地理解插入的概念
标签:双红,旋转,右旋,变色,红黑树,集合,相关,数据结构,节点 来源: https://www.cnblogs.com/niuniu-/p/14693628.html