我正在阅读Steve Yegge关于单身人士的article。在其中他提到他的老师告诉他AVL树是邪恶的。只是红色和黑色的树木是更好的解决方案吗?
答案 0 :(得分:19)
从什么角度来看是邪恶的?
总是如此:没有坏工具,只有坏工匠。
在我的记忆中,AVL树的插入/移除速度较慢,但检索速度比红/黑更快。主要是因为平衡算法。
答案 1 :(得分:8)
不,AVL树在任何方面都不是邪恶的。它们是完全有效的自平衡树结构。它们具有与红黑树不同的性能特征,通常这些差异导致人们在AVL树上选择红黑树。但这不会使他们变得邪恶。
答案 2 :(得分:4)
我确信AVL树是邪恶的,就像GOTO邪恶或BUBBLE SORT是邪恶一样。
算法并不邪恶,但算法也不会上下跳动来告诉你它们何时合适。
答案 3 :(得分:2)
以下是有关Red-Black和AVL-Trees之间差异的大量信息:
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=22948
和一篇比较不同结构的论文:
http://www.stanford.edu/~blp/papers/libavl.pdf
简而言之 - AVL搜索速度更快,插入红黑速度更快。
答案 4 :(得分:1)
Splay Trees要冷得多。 :)
答案 5 :(得分:1)
不,他们不是邪恶的,只是有点难以编程。
AVL树 http://www.eternallyconfuzzled.com/tuts/datastructures/jsw_tut_avl.aspx
红黑树也从那里链接。