AVL树是邪恶的吗?

Cha*_*hap 24 algorithm binary-tree avl-tree red-black-tree

我正在阅读Steve Yegge关于单身人士的文章.在其中他提到他的老师告诉他AVL树是邪恶的.只是红色和黑色的树木是更好的解决方案吗?

Ant*_*val 19

邪恶从什么角度来看?

像往常一样:没有坏工具,只有坏工匠.

在我的记忆中,AVL树的插入/移除速度较慢,但​​检索速度比红/黑更快.主要是因为平衡算法.

  • 一次写入多次读取的地图对我来说听起来更像是一个排序的数组...写入很少读取的地图听起来比AVL树更多.但即使在这些情况下,一定要考虑排序数组.恒定成本相当低,因此在AVL树优于红/黑树和排序数组之前,您将需要许多条目. (5认同)
  • 究竟.如果你需要一次写入多次读取的地图,AVL树很难被击败.在我看来,它们也更容易正确实施. (4认同)
  • 然而,AVL树是高度可理解的.IME,RB树不被他们的实现者理解 - 他们只是遵循规则; 从概念上讲,他们并没有真正理解正在发生的事情. (3认同)

Jar*_*Par 8

不,AVL树在任何方面都不是邪恶的.它们是完全有效的自平衡树结构.它们具有与红黑树不同的性能特征,通常这些差异导致人们在AVL树上选择红黑树.但这并不会使他们变得邪恶.