由于需要检查和更新平衡因子以及旋转节点,与非平衡二叉搜索树相比,AVL树的插入和删除可能会比较慢。
由于紧密的平衡,搜索永远不会花费线性时间,因此您可能希望在搜索频率高于树更新操作的情况下使用AVL树。
我的假设是:当你提到BST时,你指的是没有平衡的BST。
可以说,如果你需要一个可导航的数据结构,并且你知道你的数据不会是最坏情况(排序)并且相对较小,那么BST(无平衡)就足够了。
但更有可能的是这种情况很少见。
AVL树也是一种二叉搜索树,但它可以自我平衡。这种行为使得它在最坏情况下更快。它会不断地重新平衡自己,因此在最坏情况下,它将消耗O(log n)的时间,而普通的BST将需要O(n)的时间。所以,回答你的问题:实现AVL树总是比仅使用普通BST更好。