有了二叉查找树、平衡树为什么还要有红黑树?

二叉查找树

要么是一棵空树,要么是满足以下性质:

  1. 若左子树不为空,则左子树上所有节点小于根节点
  2. 若右子树不为空,则右子树上所有节点大于根结点
  3. 它的左右子树也分别为二叉查找树
    在这里插入图片描述
    在查找一个树时可以使用二分查找思想,正常情况下查找的时间复杂度是O(logN)。但是如果出现极端情况,比如根结点只有左子树或者只有右子树,那就退化为链表,查找的时间复杂度就是O(N)了。
    为了解决这个问题引入了二叉平衡树。

二叉平衡树

满足二叉搜索树性质,同时要满足每个节点的左子树和右子树高度差距至多为1。
在这里插入图片描述
平衡树能够保证左子树和右子树的深度不会有很大偏差,这样查找的时间复杂度稳定为O(logN)。但是二叉平衡树要求每个节点的左子树和右子树高度差至多为1,对于插入和删除比较频繁的场景来说,每次都需要左旋或者右旋去调整使之达到平衡树要求,这时平衡树的性能就会受影响。为此引入红黑树。

红黑树

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值