平衡二叉查找树
1、什么是平衡二叉查找树?
二叉树中任意一个节点的左右子树的高度相差不能大于 1。从这个定义来看,上一节我们讲的完全二叉树、满二叉树其实都是平衡二叉树,但是非完全二叉树也有可能是平衡二叉树。
平衡二叉查找树中“平衡”的意思,其实就是让整棵树左右看起来比较“对称”、比较“平衡”,不要出现左子树很高、右子树很矮的情况。这样就能让整棵树的高度相对来说低一些,相应的插入、删除、查找等操作的效率高一些。
2、如何定义一棵“红黑树”
红黑树中的节点,一类被标记为黑色,一类被标记为红色。除此之外,一棵红黑树还需要满足这样几个要求:
① 根节点是黑色的;
② 每个叶子节点都是黑色的空节点(NIL),也就是说,叶子节点不存储数据;
③ 任何相邻的节点都不能同时为红色,也就是说,红色节点是被黑色节点隔开的;
④ 每个节点,从该节点到达其可达叶子节点的所有路径,都包含相同数目的黑色节点;