红黑树与平衡二叉树的区别
- 平衡二叉树是一种严格的avl树,也就是说它时时刻刻都得保持任意一个节点的左右子树的高度差不超过1,一旦有数据需要插入或者删除,那么平衡二叉树都要维持整个树的平衡。通过旋转来维持的,比较消耗时间和性能。
- 而红黑树是一种弱平衡二叉树,也就是说它可能并没有那么严格,它是通过节点的颜色来控制树的平衡的,具体一点来说,从根节点到叶子节点的所有路径当中,必须包含相同的黑色的节点的个数,正因为此,就不存在某一条路径把另外一条路径短得多或者长的多的情况。并且相比与平衡二叉树来说,它的旋转的次数更少,也可以通过变色来维持树的平衡,另外在相同的节点个数的情况下,红黑树的树高是要比平衡二叉树要高一点的。
- 他们有一个相同点,就是都是以二叉查找树为基础的,节点比左边大,比右边小。并且采用的都是一种基于二分法的策略来进行查找元素的。