红黑树学习笔记

红黑树是一种二叉搜索树,通过节点颜色约束保持近似平衡,确保最长路径不超过最短路径的两倍。与AVL树相比,红黑树在插入和删除操作上效率更高,适合频繁的插入删除场景。插入新节点时,通常设为红色以简化颜色调整,最多旋转两次来维持树的性质。
摘要由CSDN通过智能技术生成

性质

红黑树是一棵二叉搜索树,它在每个节点增加了一个存储位记录节点的颜色,可以是RED,也可以是BLACK;通过任意一条从根到叶子简单路径上颜色的约束,红黑树保证最长路径不超过最短路径的二倍,因而近似平衡。

具体性质如下:

  1. 每个节点颜色不是黑色,就是红色
  2. 根节点是黑色的
  3. 如果一个节点是红色,那么它的两个子节点就是黑色的(没有连续的红节点
  4. 对于每个节点,从该节点到其后代叶节点的简单路径上,均包含相同数目的黑色节点

当满足以上性质时,就能保证最长路径不超过最短路径的二倍。

红黑树与AVL树的区别

  • AVL树比红黑树更加平衡,AVL是完全平衡的(平衡就是值树中任意节点的左子树和右子树高度差不超过1)。
  • 红黑树效率更高,因为AVL为了保证其完全平衡,插入和删除的时候在最坏的情况下要旋转logN次,而红黑树插入(最多2次)和删除(最多3次)的旋转次数要比AVL少。
  • 如果应用程序涉及许多频繁的插入和删除操作,则应首选红黑树。如果插入和删除操作的频率较低,而搜索操作的频率较高,则AVL树应优先于红黑树。

插入

红黑树插入节点过程大致分析:

  1. RBTree为二叉搜索树,我们按照二叉搜索树的方法对其进行节点插入
  2. RBTree有颜色约束性质,因此我们在插入新节点之后要进行颜色调整
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值