红黑树基本的插入和删除操作


title:红黑树基本的插入和删除操作

红黑树的的性质:

  • 每个节点的颜色为黑色或红色
  • 根节点和叶节点是黑色
  • 红色节点的子节点必为黑色
  • 每个节点到后代叶节点的简单路径上的黑色节点数目相同(黑高)

推论:含有n个节点的红黑树的高度至多为 2lg(n+1)

以下操作都是在以一个真实存在的黑色空节点为叶节点和根节点的父节点的基础上进行的(哨兵)

插入操作:

Step One:
用二叉搜索数的方式遍历红黑树,找到合适位置插入,并把该节点的颜色置为红色

由于新插入的节点为红色因此只可能违背 性质二中的第一条 性质三

因此Step Two 针对这两条性质对红黑树进行调整

Step Two:

  • 如果将一个节点插入空树违背性质二中第一条,直接将该节点颜色置为Black

  • 如果插入的节点的父节点为Red违背性质三*(六种情况,因为是相对应的,因此实际上为三种)*

    我们不妨在这用字母代替相应的节点:X(插入的节点),P(X的父节点),U(X的叔节点),G(X的祖父节点),RT(整棵树的红色节点个数),BT(整棵树的黑色节点个数)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值