红黑树理解

红黑树的核心原理:

1.没有两个相邻的红节点

2.从根节点到所有叶子节点的黑节点数目一样

抓住这2个核心就抓住红黑树的本质.之后去理解红黑树的特性.

 

红黑树的特性

1.查询效率log(n),这个和二叉搜索树一样,但不会退化成链表

为什么不会退化成链表:从上面2条,设最短路径为n,则最长路径为2n,所以是大体平衡

2.没有AVL树那么要求平衡,所以插入,删除时旋转次数少,效率高

 

红黑树插入规则

1.每次插入红节点

2.如果是根,变成黑

3.如果父节点是黑,完成

证明:如果父节点是黑,插入一个红节点,则不影响这条路径上黑节点的数目,所以符合原理得1和2

4.如果父节点是红,叔父是红

证明:现在原理2符合,但原理1不符合,所以将父和叔父涂黑,符合原理1,但祖父这一支,现在多了一个黑节点,所以将祖父涂红,然后把祖父当作插入节点继续处理

5.如果父是红,叔父是黑

如果自己和父节点不是一侧,先把自己和父节点转到一侧,以父节点为中心,转,把祖父变成父的儿子,转完之后父节点涂黑,父节点的2个儿子都为红

证明,这么做的目的是为了从祖父节点开始的这一支,每条路经上没有增加黑节点,为了满足原理1,2

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值