![](/img/trans.png)
[英]Is there a C# a list-like data structure that does not interact with .NET mono GC?
[英]Appropriate list-like sorted data structure
我正在寻找具有以下属性的类似列表的数据结构:
DataStructure<T>
,其中T
是通用的 IComparable<T>
认为相等的T
多个不同实例同时出现在列表中; 它们的顺序可以是任意的(甚至改变),但他们必须跟从的“小”的实例T
和之前的“大”的实例T
O(log(n))
插入时间复杂度(或更快) O(log(n))
检索时间复杂度(或更快) O(1)
时间复杂度访问第一个/最后一个元素 O(1)
的元素的前任/后任 我不在乎删除时间的复杂性,因为仅需很少删除元素。 我也不在乎空间的复杂性。
我知道没有可以满足所有属性的数据结构,但是BCL中的数据结构(乍看之下它们似乎可以满足我的需要)似乎有太多缺点:
SortedSet<T>
不允许IComparable<T>
(2)认为相同的多个实例,并且不具有前任/后继功能(6) SortedSet<T, List<T>>
(只有一个“代表”的索引实例T
)将需要相当长的一段额外的(丑陋的)的代码,仍然没有前任者/后继函数(6) SortedList<T, T>
插入速度太慢(3) SortedDictionary<T, T>
不允许IComparable<T>
(2)认为相同的多个实例,并且不允许直接访问第一个/最后一个元素(5),也不具有前任/后继功能(6) List<T>
继承并保持其排序可能是一个选项,但是由于实现工作的努力和潜在的不良性能,我宁愿使用内置的东西(7) 如果您愿意放松5和6,则可以使用TreeMap
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.