题目:(cd还有些疑问)
答:
a)黑高度增加的唯一方式是插入时黑色传到root且root原先为红色然后然后变为黑色。黑高度减少的唯一方式是额外的黑色传到root节点。因此可以在插入和删除过程中修改黑高度。当沿T下降时,遇到黑色顶点将黑高度减1即可得到各个节点的黑高度。
b)从T1开始,沿着结点的右子树向下找,找到黑高度为bh[T2]的黑结点
c)对任何x1属于Ty,有key[x1]<=key[x],因此Ty是X的左子树。
对任何x2属于T2,有key[x7]>=key[x],因此T2是X的右子树。
x->left = Ty;
x->right = T2;
Ty = x;
网上看到的答案是另一种方法:parent[x] = y; left[x] = left[y]; right[x] = root[T2],不知道为什么要这样做
d) x应着为红色。恢复性质2), 4)的情况同case2, case3。e) b), d)时间均为O(lgn),总时间为O(lgn)。