2024考研计算机408
链接:https://pan.baidu.com/s/152XLyH64TlcLXwmU-zlAsQ
提取码:r7zf
总结一下红黑树的插入问题,我们保证新插入的节点为红,如果它是根节点的话,调整为黑。如果他的父亲是红色的话,就不满足不红红的定义。如果父亲是黑,就不需要调整一个黑一个红,父亲是红的时候不满足不红红。接下来会有两种情况,第一种情况,叔叔是黑色。父亲红叔叔黑有强有弱,一个红一个黑,那我们在这个子数内就可以解决问题,
不需要交给上级。如何解决就是旋转解决。按照平衡二叉树的规则来。如果是红书这种情况。父亲和叔叔都是红色。他们势均力敌,自己没办法解决问题,只能交给爷爷的长辈来处理,就是爷爷把问题向上传递。那这两种情况,其实总结一下就是。要么旋转,要么交给长辈处理。第一种情况,父亲和叔叔一个红,
一个黑,自己可以处理问题,旋转就可以处理了,就不需要交给长辈。第二种情况。父亲和叔叔都是红色,处理不了,不旋转,交给长辈,要么旋转,要么交给长辈。而这两种情况都需要染色。我们看一下,如果把平衡二叉树的旋转去掉。这个部分剩下的这两种情况就只剩下染色问题了。
那红黑树插入的关键就是染色,如何染色?第一种情况。叔叔是黑,父亲是红,一个红一个黑,自己内部解决问题。旋转解决问题,按照平衡二叉树的旋转来。那这里有四种,我们怎么记忆呢?平衡二叉树的旋转目的是什么?目的是为了让它更加平衡一些,减小树高。如何保证平衡呢?
我们主要是处理三个节点。插入节点。他的父亲还有他的爷爷。那这三个节点