当前位置: 代码迷 >> 综合 >> 红黑树概念
  详细解决方案

红黑树概念

热度:48   发布时间:2023-10-08 18:29:05.0

红黑树:

主要特征:

  1. 在每个节点上增加一个属性来表示节点的颜色,可以是红色,也可以是黑色。
  2. 红黑树与AVL树类似,都是在插入和删除元素时,通过特定的旋转保持自身平衡,从而获得较高查找性能。

约束条件:

  1.         节点只能是红色或者黑色
  2.         根节点必须是黑色
  3.         所有NIL节点都是黑色
  4.        一条路径上不能出现相邻的两个红色节点
  5.        在任何递归子树内,根节点到叶子节点的所有路径上包含的相同数目的黑色节点

总结:

  •  有红必有黑,红红不相连。 上述五个约束条件保证了红黑树的新增、删除。查找的最坏时间复杂度为O(logn)。
  •  如果一个树的左节点或右节点不存在,则均认为是黑色。
  •  红黑树的任何旋转在3次之内均可完成。

 TreeMap:

            基于红黑树实现的

        TreeMap是按照key的排序结果来组织内部结构的Map类集合,它改变了Map类散乱无须的现象,不同于HashMap, TreeMap并非一定要覆写hashcode和equals方法来达到Key去重的目的。。虽然

        TreeMap没有ConcurrentHashMap和HashMap普及(插入和删除的效率没有两者高), 但在key有排序要求的场景下,用TreeMap可以事半功倍,在集合框架中 TreeMap与HashMap都继承与AbstractMap抽象类 

        TreeMap提供了平均和最坏复杂度均为O(logn)的增删改查操作,并且实现了NavigableMap接口,该集合最大的特点是Key的有序性。

  相关解决方案