.NET内置AVL树?

时间:2012-01-07 09:32:36

标签: c# .net data-structures avl-tree

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

我搜索了但没找到。

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

3 个答案:

答案 0 :(得分:9)

您可以使用System.Collections.Generic.SortedSet<T>。我认为它是使用红色黑树实现的,它是very similar到AVL树。

答案 1 :(得分:3)

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

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

答案 2 :(得分:0)

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