红黑树(C#)
黑树是插入操作类似于儿茶查找树的插入操作。只是把退出条件将NULL改为统一的叶子节点即可。关键的是对红黑树插入之后的调整操作
调整策略如下:(插入调整主要是考虑当前节点和当前节点的叔叔之间的关系)
1、叔叔节点颜色为红色
将父亲节点的颜色改为黑色
将叔叔节点的颜色改为黑色
将当前节点的指针改为其父亲节点的父亲
2、当叔叔节点颜色为黑色,且当前节点在其父亲节点的右子树上
将当前节点指针移动到其父亲节点
并以当前节点为轴进行左转操作
3、 当叔叔节点颜色为黑色,且当前节点在其父节点的左子树上
将当前节点的父节点涂黑
将父节点的父节点涂红
以父节点的父节点为轴进行右转操作
由于逻辑比较复杂,等过一段时间再放上.可以先参考这里