二叉查找树与红黑树

二叉查找树

1、左子树上所有的节点的值均小于或等于它的根节点的值;
2、右子树上所有的节点的值均大于或等于它的根节点的值;
3、左右子树也一定分别是二叉排序树;

红黑树(平衡二叉树)

1、节点是红色或黑色;
2、根节点是黑色;
3、每个叶子的节点都是黑色的空节点(NULL);
4、每个红色节点的两个子节点都是黑色(从每个叶子到跟的所有路径上不能有两个连续的红节点)(即对于层来说除了NIL节点,红黑节点是交替的,第一层是黑节点那么其下一层肯定都是红节点,反之一样);
5、从任意节点到每个叶子的所有路径都包含相同的黑色节点;

红黑树插入总结:

1、当出现新的节点时默认为红色插入,如果其父节点为红色,则对其递归向上换色,如果根节点由此变为红色,则对根节点进行左旋(右侧过深)或右旋(左侧过深)之后从根节点向下修改颜色;
2、从根节点检查是否符合路径上的黑色节点数量一致,如果不一致则对该节点进行左旋(右侧黑色节点数量更多)或右旋(左侧黑色节点数量更多)并变换颜色,重复2操作直到符合红黑树规则;

猜你喜欢

转载自blog.csdn.net/weixin_39195030/article/details/103874752