红黑树的理解
红黑树特点:

  1. 每个节点非红即黑;
  2. 根节点总是黑色的;
  3. 每个叶子节点都是黑色的空节点(NIL节点);
  4. 如果节点是红色的,则它的子节点必须是黑色的(反之不一定);
  5. 从根节点到叶节点或空子节点的每条路径,必须包含相同数目的黑色节点(即相同的黑色高度)

红黑树的应用:
TreeMap、TreeSet以及JDK1.8之后的HashMap底层都用到了红黑树。

为什么要用红黑树
简单来说红黑树就是为了解决二叉查找树的缺陷,因为二叉查找树在某些情况下会退化成一个线性结构。

红黑树属于(自)平衡二叉树,但是为了保持“平衡”是需要付出代价的,红黑树在插入新数据后可能需要通过左旋,右旋、变色这些操作来保持平衡,如果链表长度很短的话,根本不需要引入红黑树的,引入之后还要付出代价维持它的平衡。但是
链表过长就不一样了。至于为什么选 8 这个值呢?通过概率统计所得,这个值是综合查询成本和新增元素成本得出的最好的一个值。

相关文章:

  • 2021-07-24
  • 2021-04-09
  • 2021-05-07
  • 2021-07-23
  • 2021-04-07
  • 2021-08-12
  • 2021-11-27
猜你喜欢
  • 2021-12-22
  • 2021-09-01
  • 2021-07-30
  • 2022-12-23
  • 2022-12-23
  • 2022-02-08
相关资源
相似解决方案