Java——红黑树

红黑树

1. 定义

首先来理解红黑树可以用来解决什么问题:普通的二叉搜索树在作为数据存储工具的时候,具有可以快速找到一个给定关键字的数据项,并且可以快速地插入和删除数据项等优点。其中,二叉搜索树只有当插入的数据是随机数据,插入可快速进行。但当插入的数值是有序的时候,二叉树就会变成非平衡的二叉树,那么它的快速查找、插入、删除指定数据项的能力就消失了。红黑树就可以解决非平衡树的问题,他可以被理解为是一种增加了某些特点的二叉搜索树。
维基百科中对红黑树的定义为:红黑树(英语:Red–black tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。

2. 红黑树性质

一个红黑树具有以下五个性质:
1:节点是红色或黑色。
2:根是黑色。
3:所有叶子都是黑色(叶子是NIL节点)。NIL元素是指每个叶节点都有两个空的,颜色为黑的NIL元素,需要他的时候就可以把它看成两个黑色的元素,不需要的时候可以忽视他
4:每个红色节点必须有两个黑色的子节点。(从每个叶子到根的所有路径上不能有两个连续的红色节点。)
5:从任一节点到其每个叶子的所有简单路径都包含相同数目的黑色节点。

3. 红黑树的基本操作

红黑树的基本操作和其他树形结构一样,一般都包括查找、插入、删除等操作,但红黑树额外还有旋转以及改变节点颜色等操作。这是因为向红黑树中插入或者删除节点后,红黑树就发生了变化,就会导致树无法满足红黑树的5个性

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值