二叉排序树又称二叉排序树。它或者是一个空树,或者是一个具有下列性质的二叉树: - 若它的左子树不空,则左子树上所有节点的值均小于它的根结构的值 - 若它的右子树不空,则右子树上所有结点的值均大于它的根节点的值 - 它的左、右子树也分别是二叉排序树 ![[20190311150104225.png]] BST以链接方式存储,保持了链接存储结构在执行插入或删除操作时不用移动元素的优点,只要找到合适的插入和删除位置后,仅需要修改链接指针即可。插入删除的时间性能比较好。而对于BST的查找,其比较次数等于给定值的结点在二叉排序树的层数,极端情况下,最少为1次,最多不会超过树的深度。也就是说BST的查找性能取决于BST的形状。 我们希望二叉排序树是比较平衡的,其深度与完全二叉树相同,均为\log_{2}nlog2​n + 1,那么查找的时间复杂度也就为O(logn),近似于折半查找。这就引申出一个问题,即如何让BST**平衡化**。