红黑树面试题,面试问红黑树
如何解决写爬虫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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。