红黑树简介(Introduction to Red-black tree)

红黑树是一种自平衡二叉搜索树,确保O(lgn)的增删查操作。插入操作时,新节点设为红色,可能产生'红红问题',通过颜色翻转和旋转保持红黑树性质。插入操作时间复杂度为O(lgn)。
摘要由CSDN通过智能技术生成

红黑树简介(Introduction to Red-black tree)

作者:Bluemapleman(tomqianmaple@outlook.com)

麻烦不吝star和fork本博文对应的github上的技术博客项目吧!谢谢你们的支持!

知识无价,写作辛苦,欢迎转载,但请注明出处,谢谢!



前言:红黑树以操作复杂,但性能优异著称(增删查节点最坏情况的时间复杂度都是O(lgn))。Java的TreeSet和TreeMap都是基于红黑树实现的。红黑树属于BST(二叉查找树)的一种,但它相比BST多了平衡的(balanced)特征,平衡的含义是:“最坏情况下的树高也只是O(lgn)”。而平衡的特性,也就是红黑树能保证优异性能的根本所在。

定义

(可以先尝试了解2-3-4树的概念,2-3-4树也是一种自平衡的树,可以保证在O(lgn)内完成增删查操作,但是由于实现相对较为困难,所以在要求实现高性能的树时往往用性能相似的红黑树来替代。2-3-4树资料

而红黑树具备以下五个特征的二叉搜索树:

  • 每个节点要么是红色,要么是黑色
  • 根是黑色
  • 每个叶子节点(NIL)都是黑色
  • 不能父子节点同时为红色
  • 任意一条从根到叶子的路径上都有相同数目的黑色结点

pic1

浅色为红色,深色为黑色,图来自

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值