标签:jin root nil orm 维基 平衡二叉查找树 love 相同 包含
红黑树(英语:Red–black tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由鲁道夫·贝尔发明的,他称之为”对称二叉B树”,它现代的名字是在Leo J. Guibas和Robert Sedgewick于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的:它可以在 O(logn)时间内做查找,插入和删除,这里的n是树中元素的数目,摘自:维基百科-红黑树。
例如:
在我看来:
- 除开NIL结点,看图的颜色,不难发现从root开始黑红交替;
- 只有在叶子结点和NIL结点可能出现两个黑色结点,除开这种,没有连续的红(黑)结点连续。
变色仅仅指的是红黑树节点的变色。因为红黑树节点必须是【红】或者【黑】这两中颜色,所以变色只是将当前的节点颜色进行变化,以满足特性(2,3,4,5)。
旋转分左旋和右旋。图片一看就懂。
TreeMap、TreeSet以及JDK1.8之后的HashMap底层都用到了红黑树。
谢谢阅读!
标签:jin root nil orm 维基 平衡二叉查找树 love 相同 包含
原文地址:https://www.cnblogs.com/yanshanbei/p/11610410.html