红黑树和B/B+树详见这两篇博客。

AVL树为平衡二叉树,是以其发明者的名字命名的。任一结点对应的两棵子树的最大高度差为1。查找、插入和删除在平均和最坏的情况下的时间复杂度都为$O(\log n)$。

增加和删除元素操作可能需要借由一次或多次树旋转,以实现树的重新平衡。

与红黑树相比,AVL树是严格的平衡二叉树。

局限性:由于维护这种高度平衡所付出的代价比从中获得的效率收益还大。故而实际的应用不多,更多的地方是用追求局部而不是非常严格整体平衡的红黑树。当然,如果应用场景中对插入删除不频繁,只是对查找要求较高,那么AVL还是较优于红黑树。

一种二叉查找树,确保没有一条路径会比其他路径长出两倍。是一种弱平衡树。在插入和删除的操作中的旋转次数相对于AVL树来说较少。

B+树是应文件系统所需而产生的一种B树的变形树,非叶子结点只保存索引,不保存实际的数据,数据都保存在叶子结点中。相当于是文件系统的查找。

另外B+树支持顺序查找而B树不支持,数据库中经常需要遍历一定范围内的数据,因此采用B+树比采用B树的效率更高。