AVL树又称高度平衡的二叉搜索树,它有如下几个性质:
1.左子树与右子树的高度差绝对值不超过1;
2.树中每个节点的左右子树都是AVL树;
3.每个节点都有一个平衡因子(balance factor)这里简称bf,AVL树中每个节点的平衡因子都为1,0,-1(每个节点的平衡因子等于该节点右子树的高度减去其左子树的高度)。
假设一棵AVL树有N个节点,其高度保持在log2N,插入删除查找算法的时间复杂度也是log2N(这里的log2N是指log以2为底的N的对数)。
了解完上面这些我们来探讨一下AVL树的左右单旋与双旋。
首先我在这里给出一个粗略画出的AVL树,并在每个节点的右端标出它的平衡因子,就目前看来,这棵树是满足AVL树的所有性质的。

本文介绍了AVL树的平衡性质以及在节点插入后如何通过左、右单旋操作保持平衡。左单旋用于平衡因子变为2的节点,通过将高节点压下,低节点提升,保持AVL树的平衡。右单旋操作与左单旋类似,处理插入导致的平衡因子问题。文章为理解AVL树的旋转操作提供了清晰的说明。
最低0.47元/天 解锁文章
691

被折叠的 条评论
为什么被折叠?



