2010-10-12 61 views

回答

7

SortedDictionary<K,V>类使用树,那是你在做什么?

查看此SO answer进行讨论。

2

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

+1

这提供了相同的搜索语义,但底层结构仍然是普通的旧List,而不是BST。 – 2010-10-12 15:42:17

+0

良好的电话,没有想到当我发布的时候(当时只有1杯咖啡)。我使用带有BinarySearch和补充索引插入的List来获取BST搜索语义。我应该仔细阅读:) – pstrjds 2010-10-12 16:47:39

2
C5 library

类TreeDictionary实现接口ISortedDictionary和表示 (键,值)对,或条目,使用有序均衡redblack 二叉树的字典。条目访问,条目删除和条目插入花费时间O(logn)。 枚举树形词典的键,值或条目的操作遵循键关键字 (由键盘比较器确定)。