红黑树

作者: Andone1cc | 来源:发表于2017-05-09 18:52 被阅读0次

为什么需要红黑树?

由于AVL树是以增加、删除节点来保证树的基本平衡,从而保证查询效率在O(logN)左右。
红黑树就是在不牺牲太大的增加、删除操作的代价,而且也能保证稳定高效的查找效率。

红黑树的特性

红黑树
  1. 每个节点要么是红色,要么是黑色
  2. 根节点是黑色
  3. 每个叶子节点(null)是黑色
  4. 如果一个节点是红色的,则它的子节点必须是黑色的。
  5. 没有一条路径会比其他路径长两倍(虽然不是AVL中高度差不能超过为2的严格平衡)

红黑树查找性能

  • 查找性能:基本维持在O(logN),但是最差的情况是最短路径的两倍减一,所以要比AVL树差一点。
  • 插入性能:需要至多两次旋转和变色,也为O(logN)
  • 删除性能:删除性能要比AVL树好很多,至多进行三次旋转操作。而不用像AVL树检查每一层的平衡因子可能涉及到多次旋转,所以删除性能要比AVL树好很多。

相关文章

  • 数据结构—树—红黑树

    红黑树概述 红黑树的插入 红黑树的删除

  • TreeMap

    需要先了解红黑树,这是之前分析红黑树的文章。之前在分析红黑树时,我认为红黑树=二叉查找树+红黑平衡,关于二叉查找树...

  • 数据结构与算法-AVL 红黑树

    AVL树AVL树 算法红黑树红黑树 B站

  • [转载]红黑树

    https://zhuanlan.zhihu.com/p/24367771红黑树简介红黑树插入红黑树删除

  • 拿下红黑树

    红黑树 红黑树、2-3树的简单定义: 实现红黑树的基本结构以及添加操作(维护定义,左旋、右旋、颜色反转) 红黑树与...

  • 红黑树

    啥是红黑树,红黑树 = 二叉树

  • 彻底理解红黑树(二)之 插入

    彻底理解红黑树(一)之 二叉搜索树彻底理解红黑树(二)之 插入彻底理解红黑树(三)之 删除 前言 红黑树的插入情况...

  • 彻底理解红黑树(三)之 删除

    彻底理解红黑树(一)之 二叉搜索树彻底理解红黑树(二)之 插入彻底理解红黑树(三)之 删除 前言 红黑树的删除情况...

  • Golang红黑树

    红黑树 红黑树是每个节点都带有颜色属性(红色或黑色)的二叉查找树。红黑树也属于自平衡二叉查找树。 红黑树具有如下性...

  • 数据结构红黑树添加、修改原理分析

    源码分析大纲 数据结构解析 红黑树试下原理刨析 数据结构解析 1.红黑树 1.1 红黑树概念 红黑树(Red Bl...

网友评论

      本文标题:红黑树

      本文链接:https://www.haomeiwen.com/subject/ezsitxtx.html