AVL树:带有平衡条件的二叉树。是每个节点的左右子树的高度最多差1的二叉查找树。
为了使其保持平衡,需要在插入或删除节点时做单旋转或双旋转。
假设,在插入或删除操作之后,节点a已经变得不平衡,那么如果导致不平衡的动作是:
对a的左儿子的左子树进行一次插入,或者是,对a的右儿子的右子树进行一次插入,则需要进行一次单旋转;
对a的左儿子的右子树进行一次插入,或者是,对a的右儿子的左子树进行一次插入,则需要进行一次双旋转。
双旋转等于某个子节点的一次单旋转加上自身的一次单旋转。
AVL树:带有平衡条件的二叉树。是每个节点的左右子树的高度最多差1的二叉查找树。
为了使其保持平衡,需要在插入或删除节点时做单旋转或双旋转。
假设,在插入或删除操作之后,节点a已经变得不平衡,那么如果导致不平衡的动作是:
对a的左儿子的左子树进行一次插入,或者是,对a的右儿子的右子树进行一次插入,则需要进行一次单旋转;
对a的左儿子的右子树进行一次插入,或者是,对a的右儿子的左子树进行一次插入,则需要进行一次双旋转。
双旋转等于某个子节点的一次单旋转加上自身的一次单旋转。