码迷,mamicode.com
首页 > 其他好文 > 详细

红黑树(学习笔记)

时间:2014-10-04 20:15:07      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:style   color   ar   数据   sp   div   问题   c   log   

1.为什么要提出红黑树?

   二叉查找树的查找、插入、删除时间复杂度都是O(h),其中h是树的高度。假设二叉查找树的结点个数是n,如果二叉查找树比较平衡,则h=O(log n),如果二叉查找树严重不平衡,那么树的高度h远大于O(log n),则二叉查找树的查找、插入、删除操作的时间复杂度就比较高。

  平衡查找树就是为解决二叉查找树高度h比较大时,查找、插入、删除操作的时间复杂度比较高的问题而提出的数据结构。

   目前为止,我接触到的平衡查找树有:AVL树、B树、红黑树。(其他平衡查找树还有很多)

   1)AVL树:最先发明的自平衡二叉查找树,AVL中任何结点的两个儿子子树的高度最大差为1.

   2)B树:是一种平衡的多叉树。

   3)红黑树:是一种对称的二叉B树。

2.什么是红黑树?

   简单来说,红黑树是一种高度为O(log n)的二叉查找树。

   红黑树中每个节点包括5个域:key(结点值)、color(结点颜色)、p(指向双亲)、left(指向左孩子)、right(指向右孩子)。

   红黑树有5个性质: 

      性质1. 节点是红色或黑色。
  性质2. 根节点是黑色。
  性质3. 每个叶节点(NIL节点,空节点)是黑色的。(注:NIL结点被认为是叶子结点,一般根节点的父节点也会是NIL结点,表示与红黑树的内结点相对的外结点)
  性质4. 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)
  性质5. 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点

 

红黑树(学习笔记)

标签:style   color   ar   数据   sp   div   问题   c   log   

原文地址:http://www.cnblogs.com/Xylophone/p/3893543.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!