11

.NET 库中是否有内置的 AVL 树?

我搜索但没有找到。

  • 如果有,那么在哪里?什么命名空间?
  • 如果没有,C# 中的 AVL 树有什么好的实现吗?
  • 如果也没有!那么有没有简单的方法来完成它?我知道它是如何工作的,并且之前用原生 C++ 构建了一个,但现在我没有时间,而且如果我自己做的话,我害怕性能不佳。
4

3 回答 3

13

您可以使用System.Collections.Generic.SortedSet<T>. 我认为它是使用与AVL 树非常相似的红黑树实现的。

于 2012-01-07T09:43:47.503 回答
3

快速搜索在这里找到了一个实现。代码看起来很干净,但我还没有尝试过。

如果不出意外,您可以针对SortedSet<T>(如@Josef 建议的那样)进行快速性能测试,看看您的用例是否有任何不同。

于 2012-01-07T09:52:03.143 回答
0

可以在 @ http://code.google.com/p/self-balancing-avl-tree/找到 C# 实现。还实现了 concat 和 split 操作。

于 2012-07-13T00:51:27.277 回答