其他分享
首页 > 其他分享> > 与集合相关的数据结构

与集合相关的数据结构

作者:互联网

目录

与集合相关的数据结构

1.栈

特点:先进后出

2.队列

特点:先进先出(像排队一样)

3.数组

特点:查询快,增删慢(好查询元素,不好增加删除元素)

查询快:通过索引快速定位

增删慢:增或删都是通过创建一个全新的数组,然后销毁旧的数组。

如下,图解更好理解

4.链表

特点:查询慢,增删快(不好查元素,好增加删除元素)

5.红黑树

个人理解:

记住红黑树性质

  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