C++平衡二叉搜索树易错点
一、平衡二叉搜索树不存在退化成单支树的极端情况,AVL的设计就是为了避免这种情况
二、AVL树查询的时间复杂度是O(logN),是通过平衡因子限制子树的高度的(虽然也可以不采用平衡因子的方法)
三、一般情况下,我们的习惯是将一个节点的左子树都设置成比他小的值,将右子树都设置成比他大的值,但是也可以反过来设置,这样中序遍历的出来的就是降序序列而不是生序序列
四、插入时AVL树最多需要旋转两次(即左右双旋和右左双旋);删除时,如果某个节点不满足特性时,需要对这棵子树进行旋转,因为有可能高度发生改变,所以还有可能对上一层进行旋转