数据结构--AVL树
AVL树是带有平衡条件的二叉查找树,N它保证N个节点的AVL树的深度是log2N。具有以下性质:
- 任意一个结点的key,比它的左孩子key大,比它的右孩子key小;
- 任意结点的孩子结点之间高度差距最大为1;
- 每个节点都有平衡因子,平衡因子=右子树高度-左子树高度,任何节点的平衡因子为-1,0或1;
二叉查找树是为了解决链表查询效率问题,但是极端情况下,二叉查找树又会退化成链表。平衡二叉树就是为了解决二叉排序树的不平衡性导致时间复杂度大大下降的问题,为了解决这个问题,每次插入和删除都要旋转重新平衡。