二叉树 |
二叉树· 二叉查找树 (BST) · 笛卡尔树 ·
Top tree ·
T树
|
---|---|
自平衡二叉查找树 |
AA树 · AVL树 · 红黑树· 伸展树· 树堆 · 节点大小平衡树
|
B树 |
B树· B+树 ·
B*树 ·
Bx树 ·
UB树 ·
2-3树 · 2-3-4树 ·
(a,b)-树 ·
Dancing tree ·
H树
|
Trie |
前缀树 · 后缀树·
基数树
|
空间划分树 |
四叉树· 八叉树· k-d树 ·
vp-树 ·
R树 ·
R*树 ·
R+树 ·
X树 ·
M树 · 线段树·
希尔伯特R树 ·
优先R树
|
非二叉树 |
Exponential tree
·
Fusion tree
·
区间树
·
PQ tree
·
Range tree
·
SPQR tree
·
Van Emde Boas tree
|
其他类型 |
堆 ·
散列树
·
Finger tree
·
Metric tree
·
Cover tree
·
BK-tree
·
Doubly-chained tree
·
iDistance
·
Link-cut tree
·
树状数组
|
AVL树:
在计算机科学中,AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(logn)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。AVL树得名于它的发明者G.M.Adelson-Velsky和E.M.Landis,他们在1962年的论文《An algorithm for the organization ofinformation》中发表了它。
节点的平衡因子是它的左子树的高度减去它的右子树的高度(有時相反)。带有平衡因子1、0或-1的节点被认为是平衡的。带有平衡因子-2或2的节点被认为是不平衡的,并需要重新平衡这个树。平衡因子可以直接存储在每个节点中,或从可能存储在节点中的子树高度计算出来。
AVL树的基本操作一般涉及运作同在不平衡的二叉查找树所运作的同样的算法。但是要进行预先或随后做一次或多次所谓的"AVL旋转"。