标签:双红 旋转 右旋 变色 红黑树 集合 相关 数据结构 节点
目录与集合相关的数据结构
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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。