.NET 库中是否有内置的 AVL 树?
我搜索但没有找到。
- 如果有,那么在哪里?什么命名空间?
- 如果没有,C# 中的 AVL 树有什么好的实现吗?
- 如果也没有!那么有没有简单的方法来完成它?我知道它是如何工作的,并且之前用原生 C++ 构建了一个,但现在我没有时间,而且如果我自己做的话,我害怕性能不佳。
.NET 库中是否有内置的 AVL 树?
我搜索但没有找到。
您可以使用System.Collections.Generic.SortedSet<T>
. 我认为它是使用与AVL 树非常相似的红黑树实现的。
快速搜索在这里找到了一个实现。代码看起来很干净,但我还没有尝试过。
如果不出意外,您可以针对SortedSet<T>
(如@Josef 建议的那样)进行快速性能测试,看看您的用例是否有任何不同。
可以在 @ http://code.google.com/p/self-balancing-avl-tree/找到 C# 实现。还实现了 concat 和 split 操作。