红黑树概念

知识共享许可协议 版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons

红黑树:

主要特征:

  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的有序性。

猜你喜欢

转载自blog.csdn.net/qq_34579060/article/details/93852629
今日推荐