zoukankan      html  css  js  c++  java
  • 红黑树

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

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

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

    颜色是红或者黑。

    根和叶子必须是黑色。

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

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

    节点的插入:

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

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

    调整方法有三种情况,详细见http://dongxicheng.org/structure/red-black-tree/
  • 相关阅读:
    Hash
    字符串hash
    NOIp 2014解方程
    NOIp2014 寻找道路
    NOIp2013火柴排队
    用scanf("%d",)读入long long类型
    lis问题
    西江月·证明
    计算系数
    积木大赛&PLA-Postering
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6205525.html
Copyright © 2011-2022 走看看