我正在寻找.NET 4中的内置二进制搜索树实现。有一个吗?
答案 0 :(得分:7)
SortedDictionary<K,V>
类使用树,你正在追求的是什么?
请参阅此SO answer进行讨论。
答案 1 :(得分:4)
答案 2 :(得分:2)
另一种选择是使用List并对其进行排序。然后,您可以使用BinarySearch方法查找项目。要维护排序列表,可以使用BinarySearch返回的索引来插入。如果返回的索引为负,则使用补码(〜运算符)作为插入位置,如果返回的索引为正,则可以在该位置插入(除非您希望设置类似行为,在这种情况下根本不插入)。
答案 3 :(得分:2)
类TreeDictionary实现接口ISortedDictionary并表示 使用有序平衡的重写黑名单的(键,值)对或条目的字典 二叉树。条目访问,条目删除和条目插入需要时间O(logn)。 按照键顺序枚举树词典的键,值或条目, 由关键比较器确定。
答案 4 :(得分:0)
http://code.google.com/p/self-balancing-avl-tree/。具有连接和拆分操作的平衡AVL树实现以及基于AVL树的SortedDictinary和SortedMultiDictionary。