红黑树的插入、删除及旋转原则
红黑树 !"的插入和删除操作很繁琐,一不小心就容易弄错,不
能靠强制记忆。因此,今天总结一下红黑树插入和删除操作的推导原则,包括
旋转的推导原则。
本文所有内容来自三个网页
# $%&&$#'#(&)
(*+,-.//0'/1/02020+01+0./,',-20,
/2.12+2+20+.0+12+2/.-0',/+
/0-.++2'''''1+0+..2./2/1/--/1120
-1112011,1,',/2'22+-+1+2-2+--/
/,+//0'1'0--/'2/-1'12.01'-'+--+'0.2.
00.23%*,1.0-,0/0''++1234*'
# $%&&#(&22&2,&-&4' &
.# $%&&$#'#(&220--0&'&(&
.'+101..2+//#$(
如果大家能打开上面的链接,就不用再看了,我整理
得不好。。
先是比较简单的插入操作的推导原则:
#红黑树的插入和普通搜索二叉树5$!"的插入一样,只是
在插入完以后,将新插入的节点标记为红色,然后从该节点开始,向上进行调
整颜色。
#向上调整颜色进行旋转时,旋转的原则是尽量用 次或者最多 次旋转完成,
并且旋转操作不能影响该层以下层次的节点,只能影响其父节点,然后将其父
节点(或者叔节点、兄弟节点)作为新的要调整颜色节点,继续向上递推调整。
.#调整完后注意检查根的颜色是否还是黑色。
删除操作的推导原则:(比较麻烦!)
评论9