在.NET4中是否有二进制搜索树实现?

在.NET4中是否有二进制搜索树实现?,.net,data-structures,.net-4.0,binary-tree,.net,Data Structures,.net 4.0,Binary Tree,我正在寻找.NET4中内置的二进制搜索树实现。有吗?SortedDictionary类使用一个树,这就是你想要的吗 查看此讨论。您可以使用另一个选项是使用列表并对其排序。然后可以使用BinarySearch方法查找项目。要维护排序列表,您可以使用BinarySearch返回的索引插入。如果返回的索引为负数,则使用补码(~运算符)作为插入位置,如果返回的索引为正数,则可以在该位置插入(除非您希望设置类似的行为,在这种情况下,根本不插入)。: 类TreeDictionary实现接口ISortedDi

我正在寻找.NET4中内置的二进制搜索树实现。有吗?

SortedDictionary类使用一个树,这就是你想要的吗


查看此讨论。

您可以使用另一个选项是使用列表并对其排序。然后可以使用BinarySearch方法查找项目。要维护排序列表,您可以使用BinarySearch返回的索引插入。如果返回的索引为负数,则使用补码(~运算符)作为插入位置,如果返回的索引为正数,则可以在该位置插入(除非您希望设置类似的行为,在这种情况下,根本不插入)。

:

类TreeDictionary实现接口ISortedDictionary并表示 (键、值)对或条目的字典,使用有序的平衡红黑 二叉树。条目访问、条目删除和条目插入需要时间O(logn)。 树字典的键、值或条目的枚举遵循键顺序, 由键比较器确定


。平衡的AVL树实现,带有连接和拆分操作,以及基于AVL树的SortedActional和SortedMultiDictionary。

这提供了相同的搜索语义,但底层结构仍然是一个简单的旧列表,而不是BST。很好的调用,在我发布时没有考虑清楚(当时只有一杯咖啡). 我使用带有二进制搜索和补码索引插入的列表来获得BST搜索语义。我应该更仔细地阅读:)