如何详细解释数据结构中的红黑树原理和应用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2314个文字,预计阅读时间需要10分钟。
数据结构+红黑树的详解+红黑树是具有下列性质的二叉查找树:+1.每个节点或为红色或为黑色。+2.根节点是黑色。+3.如果一个节点是红色的,则它的子节点必须是黑色的。
数据结构 红黑树的详解
红黑树是具有下列着色性质的二叉查找树:
1.每一个节点或者着红色,或者着黑色。
2.根是黑色的。
3.如果一个节点是红色的,那么它的子节点必须是黑色。
4.从一个节点到一个NULL指针的每一条路径必须包含相同数目的黑色节点。
下面是一棵红黑树。
1.自底向上插入
通常把新项作为树叶放到树中。如果我们把该项涂成黑色,那么违反条件4,因为将会建立一条更长的黑节点路径。因此这一项必须涂成红色。如果它的父节点是黑色的,插入完成。如果父节点是红色的,那么违反条件3。在这种情况下我们必须调整该树以满足条件3。用于完成这项目任务的基本操作是颜色的改变和树的旋转。
如果新插入的节点的父节点是黑色,那么插入完成。
如果父节点是红色,那么有几种情形需要考虑。首先,假设这个父节点的兄弟是黑色(NULL节点约定为黑色)。这对于插入3或8是适用的,但对插入99不适用。令X是新加的树叶,P是它的父节点,S是该父节点的兄弟,G是祖父节点情况一:父节点的兄弟是黑色的。通过操作使得到达A,B,C的黑色路径保持不变(满足条件4),而且没有连续的红色节点(满足条件3).。
情况二:父节点的兄弟是红色的。
本文共计2314个文字,预计阅读时间需要10分钟。
数据结构+红黑树的详解+红黑树是具有下列性质的二叉查找树:+1.每个节点或为红色或为黑色。+2.根节点是黑色。+3.如果一个节点是红色的,则它的子节点必须是黑色的。
数据结构 红黑树的详解
红黑树是具有下列着色性质的二叉查找树:
1.每一个节点或者着红色,或者着黑色。
2.根是黑色的。
3.如果一个节点是红色的,那么它的子节点必须是黑色。
4.从一个节点到一个NULL指针的每一条路径必须包含相同数目的黑色节点。
下面是一棵红黑树。
1.自底向上插入
通常把新项作为树叶放到树中。如果我们把该项涂成黑色,那么违反条件4,因为将会建立一条更长的黑节点路径。因此这一项必须涂成红色。如果它的父节点是黑色的,插入完成。如果父节点是红色的,那么违反条件3。在这种情况下我们必须调整该树以满足条件3。用于完成这项目任务的基本操作是颜色的改变和树的旋转。
如果新插入的节点的父节点是黑色,那么插入完成。
如果父节点是红色,那么有几种情形需要考虑。首先,假设这个父节点的兄弟是黑色(NULL节点约定为黑色)。这对于插入3或8是适用的,但对插入99不适用。令X是新加的树叶,P是它的父节点,S是该父节点的兄弟,G是祖父节点情况一:父节点的兄弟是黑色的。通过操作使得到达A,B,C的黑色路径保持不变(满足条件4),而且没有连续的红色节点(满足条件3).。
情况二:父节点的兄弟是红色的。

