数学与计算机结合学习红黑二叉树 定理证明篇

说明,一个节点a,如果节点a度不为2,那么节点a就适用于定义4,所以下面常出现这样的句式:节点某某某度不为2...是否符合定义4。


定理1证明

在红黑二叉树中任取一个度不为2的黑色节点 b,记b的父节点为p, 在b下添加一个红色子节点 c,这时对于定义1、2、3仍不违背,下面证明定义4也不违背:

对于除c外的度不为2的任意节点x,blen(x)不变仍等于blen。对于节点c,根节点到c节点包含的黑色节点数:blen(c) = blen(b) + blen(b,c)  = blen(b) + 0 = blen(b) = blen

计算得出根节点到节点c包含的黑色节点数也是blen,所以新的二叉树也不违背定义4,新二叉树仍未红黑二叉树。


定理2证明

假设在红黑二叉树中存在度为1的红色节点a,则a存在一个子节点记为b,由红黑二叉树的定义2可知,子节点b为黑色节点。

根节点到度为1的节点a包含的黑色节点数为:blen(a)。

1. 如果子节点b的度不为2,根节点到节点b的黑色节点数为:blen(b) = blen(a) + blen(a,b) = blen(a) + 1 > blen(a),违背定义4。

2. 如果子节点b的度为2,则b存在两个子节点,在b的若干级下级节点中必存在一个节点c且c的度不为2,这时blen(c) = blen(a) + blen(a, b) + blen(b,c) = blen(a) + 1 + blen(b,c) > blen(a),违背定义4。

所以假设不成立,得出红黑二叉树中不存在度为1的红色节点。


定理3证明

假设在红黑二叉树中,度为0的红色节点a,存在黑色兄弟节点b,记他们的父节点为p。根节点到节点a的黑色节点数为:blen(a) = blen(p) + blen(p,a) = blen(p) + 0 = blen(p)

1. 如果节点b的度不为2,则根节点到节点b的黑色节点数为:blen(b) = blen(p) + blen(p, b) = blen(p) + 1 > blen(a),违背定义4。

2. 如果节点b的度为2,则节点b存在两个子节点,在b的若干级下级节点中必存在一个节点c且c的度不为2,这时blen(c) = blen(p) + blen(p,b) + blen(b,c) = blen(p) + 1 + blen(b,c) > blen(a),违背定义4。

所以假设不成立,得出红黑二叉树中,度为0的红色节点,不存在黑色兄弟节点。

猜你喜欢

转载自blog.csdn.net/Vincent_Field/article/details/80595776