我想使用C#在平衡二叉搜索树中存储一些值.我查看了泛型命名空间中的集合,但我没有找到stl集的等价物.
我可以使用哪些通用集合?(我不想存储键/值对......只是值.)
您可以使用HashSet
本
HashSet
类提供高性能的一组操作.集合是一个不包含重复元素的集合,其元素没有特定的顺序.
HashSet
对象的容量是对象可以容纳的元素数.甲HashSet
作为元素被添加到对象物体的能力自动增加.
如果您需要排序集,请使用SortedDictionary
.这是使用二叉搜索树实现的.不可否认,每个条目将使用64位,因为您在下面存储了一个键值对.你可以像这样写一个包装器:
class Set: SortedDictionary { public void Add(T item) { this.Add(item, true); } }
如果您不需要排序集,请使用HashSet
.
否则,请查看C5 Generic Collection Library.特别是TreeSet
.它是一棵红黑树,只存储值.