.NET Built-in AVL-Tree?



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

我找了一下,但没有找到。

  • 如果有,那么在哪里?什么名称空间
  • 如果没有,C#中是否有AVL树的良好实现
  • 如果没有!那么有没有一种简单的方法可以完成呢?我知道它是如何工作的,以前也用原生C++构建过一个,但现在我没有时间,担心如果我自己做的话会有糟糕的性能

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

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

如果没有别的,您可以对SortedSet<T>进行快速性能测试(如@Josef所建议的),看看您的用例是否有任何差异。

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

最新更新