.NET 内置 AVL 树?
.NET 库中有内置的 AVL 树吗?
我搜索过但没有找到。
- 如果有的话,那么在哪里呢?什么命名空间?
- 如果没有,C# 中 AVL 树有什么好的实现吗?
- 如果还没有!那么有没有一种简单的方法可以完成呢?我知道它是如何工作的,并且之前已经用原生 C++ 构建过一个,但现在我没有时间,而且担心如果我自己做的话性能会很差。
Is there a built in AVL Tree in the .NET libraries?
I searched but didn't find any.
- If there is, then where? what namespace?
- If not, is there any good implementation for AVL Trees in C#?
- If also not! then is there an easy way to get it done? I know how it works and have built one in native C++ before, but now I have no time and am afraid of bad performance if I did it myself.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用
System.Collections.Generic.SortedSet
。我认为它是使用红黑树实现的,它非常相似< /a> 到 AVL 树。
You can use a
System.Collections.Generic.SortedSet<T>
. I think it is implemented using a red-black tree which is very similar to an AVL tree.快速搜索此处找到了一个实现。代码看起来很干净,但我还没有尝试过。
如果没有别的事,您可以对
SortedSet
(按照 @Josef 的建议)进行快速性能测试,看看您的用例是否有任何差异。A quick search found an implementation here. The code looks clean, but I haven't tried it.
If nothing else, you could do a quick performance test against
SortedSet<T>
(as suggested by @Josef) to see if there's any difference for your use case.可以在 @ http://code.google.com/p 找到 C# 实现/self-balancing-avl-tree/ 。还实现了连接和拆分操作。
a C# implementation can be found @ http://code.google.com/p/self-balancing-avl-tree/ . concat and split operations are also implemented.