红黑树的最坏情况黑色高度的插入顺序

时间:2013-02-27 21:33:42

标签: binary-search-tree red-black-tree insertion-order

让我们说我们正在处理密钥1-15。要获得常规BST的最差情况,您可以按升序或降序插入键,如下所示:

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

然后BST基本上会成为一个链表。

对于BST的最佳情况,您可以按以下顺序插入键,它们的排列方式是插入的下一个键是要插入的总范围的一半,因此第一个是15/2 = 8 ,然后8/2 = 4等...

8,4,12,2,6,10,14,1,3,5,7,9,11,13,15

然后BST将是一个平衡良好的树,最佳高度为3。

红黑树的最佳案例也可以用BST的最佳案例构建。但是我们如何构建一棵红黑树的最坏情况呢?是否与BST的最坏情况相同?是否有一种特定的模式会产生最坏的情况?

2 个答案:

答案 0 :(得分:1)

你正在寻找一棵瘦小的树,对吧?这可以通过以相反的顺序插入[1 ... , 2^(n+1)-2]来生成。

答案 1 :(得分:0)

你将无法做到。红黑树保持“浓密”,因此它会旋转以修复不平衡。你对红黑树的最坏情况的长度限于两个元素,但这仍然不是一个“坏”的情况;它是预期的,因为lg(2)= 1,并且你有一层超过根有两个元素。只要添加第三个元素,就可以得到:

B                   B
 \                 / \
  R       =>      R   R
   \
    R