<分区>
在我看来,AVL 树总是比 BST 更有效。那么为什么人们仍然使用 BST? AVL 实现是否会产生成本?
<分区>
在我看来,AVL 树总是比 BST 更有效。那么为什么人们仍然使用 BST? AVL 实现是否会产生成本?
最佳答案
AVL 树与红黑树或 2-3 树或普通 BST 等其他树相比有其优点和缺点。
AVL 树:
优点:
缺点:
如果您希望对数据进行排序,则 BST 会转化为链表。但是如果你希望你的数据是相当随机的,“平均而言”,你对 BST 的所有操作(查找、删除、插入)都将是对数的。编写 BST 非常容易:AVL 树虽然编写起来相当简单,但有很多极端情况,测试可能很棘手。
总而言之,普通的二叉搜索树很容易编码并且正确,如果您的数据相当随机,应该表现得很好(平均而言,所有操作都是对数的)。 AVL Tree 更难编码,但以一些额外的空间和更复杂的代码为代价保证了对数性能。
关于c++ - 使用 AVL 树的缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33154475/