红黑树和平衡二叉树

红黑树和平衡二叉树

在此之前,我没有了解过红黑树以及VAL tree,真是孤陋寡闻。如果你也在学习的话,我们一起进步。

如果,你很急,那么只看红色加粗即可。


 1.红黑树

红黑树是一种特殊的二叉树,特殊在它的性质。

性质:

  • 节点非黑即红。
  • 根节点是黑色。
  • 每个叶节点(NILL节点,空节点)是黑色的。
  • 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)
  • 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。
===》 从根到叶子的最长的可能路径不多于最短的可能路径的两倍长
 
为什么呢?
注意到性质4导致了路径不能有两个毗连的红色节点。最短的可能路径都是黑色节点,最长的可能路径有交替的红色和黑色节点。因为根据性质5所有最长的路径都有相同数目的黑色节点,这就表明了没有路径能多于任何其他路径的两倍长。===》 此树大致上平衡的。
 
它适合什么?
查找 插入 删除 较多的情况

2.VAL 树(平衡二叉树)

平衡二叉树要求很严格,它限定 左右子树的高度差(绝对值)不超过1,所以他的 高度会低于红黑树,我们知道,二叉树的查找复杂度与其高度密切相关(O(log 2n)),所以我们就知道了:二叉平衡树 适合查找。碍于它的严格限制,必须要时刻保证左右子树高度差,所以在进行 插入删除操作时,旋转子树就变得很麻烦。
 
它适合什么?
查找 较多的情况

 
 

猜你喜欢

转载自www.cnblogs.com/yocichen/p/10457359.html