红黑树面试题,面试问红黑树

  红黑树面试题,面试问红黑树

  如何解决写爬虫IP受阻的问题?立即使用。

  首先,我们来看看红黑树的结构,如图:

  (学习视频分享:java教学视频)

  红树林的结构特征:

  (1)每个节点不是黑色就是红色。

  (2)根节点为黑色。

  (3)每个叶节点(NIL)是黑色的。【注意:这里的叶节点指的是空的(NIL或NULL)叶节点!]

  (4)如果一个节点是红色的,它的子节点必须是黑色的。

  (5)从一个节点到其后代的所有路径包含相同数量的黑色节点。

  为什么要用红黑树?

  1.首先,红黑树不满足AVL树的平衡条件,即每个节点的左子树和右子树之间高度差最多为1的二叉查找树。但是提出了给节点加颜色的想法。红黑树在添加或删除节点时使用非严格平衡来减少旋转次数,任何不平衡都会在三次旋转内解决。AVL是一棵严格平衡的树,所以在添加或删除节点时,旋转的次数比红黑树多。所以红黑树的插入效率更高。

  (更多相关面试问题推荐:java面试问答)

  2.红黑树可以搜索、插入和删除,时间复杂度为O(log2 (n))。

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

  黑树和平衡树的比较与选择

  1.平衡树结构更直观,阅读性能高于红黑树;增删节点恢复平衡的性能不如红黑树。

  2.红黑树,阅读性能不如平衡树;添加和删除节点来恢复平衡性能比平衡树要好。

  红树的使用场景:

  JDK1.8以后的TreeMap、TreeSet和HashMap底层都使用红黑树。

  推荐:java入门教程以上是java面试3354红黑树的详细内容。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: