RB-INSERT-FIXUP(T,z)
while color[p[z]] = RED
do if p[z] = left[p[p[z]]
then y<- right[p[p[z]]]
if color[y] =RED
then color[p[z]]<- BLACK
color[y]<- BLACK
color[p[p[z]]]<- RED
z<- p[p[z]]
else if z = right[p[z]]
then z<- p[z]
LEFT-ROTATE(T,z)
color[p[z]]<- BLACK
color[p[p[z]]]<- RED
RIGHT-ROTATE(T,p[p[z]])
else //p[z]=right[p[p[z]]]
then y<- left[p[p[z]]]
if color[y] =RED
then color[p[z]]<- BLACK
color[y]<- BLACK
color[p[p[z]]]<- RED
z<- p[p[z]]
else if z = left[p[z]]
then z<- p[z]
RIGHT-ROTATE(T,z)
color[p[z]]<- BLACK
color[p[p[z]]]<- RED
LEFT-ROTATE(T,p[p[z]])
color[root[T]]<- BLACK
Red-Black Tree Insertion Fixup
最新推荐文章于 2025-01-08 07:51:07 发布