菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
2
0

红黑树

原创
05/13 14:22
阅读数 69503

红黑树是一种自平衡二叉查找树,在O(log n)时间内做查找,插入和删除等操作。统计性能优化于平衡二叉树(AVL树)。

 

红黑两色保证树的高度近似平衡,

节点是五元组:color(颜色),key(数据),left(左孩子),right(右孩子)和p(父节点)。

颜色是红或者黑。

根和叶子必须是黑色。

某一节点为红,则两个孩子必须是黑的。

从任一节点到其叶子的所有简单路径都包含相同数目的黑色节点。

 

 

节点的插入:

(1)插入新节点必须为红色,时间O(N)。导致出现两个连续红色节点的冲突,则通过颜色调换(color flips)和树旋转来调整。如果插入黑色会导致根到叶子的路径上有一条路上,多了一个额外黑节点,会很难调整。

(2)自上而下调整为红黑树。

http://dongxicheng.org/structure/red-black-tree/

发表评论

0/200
2 点赞
0 评论
收藏