我正在寻找提供以下内容的数据结构:
我在MSDN上找到的数据结构无法满足我的要求
List
和LinkedList
不提供互换方式ArrayList
做到这一点,但是当我在前面位置添加一个元素时,我猜它的效率很低(因为后面的所有元素都必须被复制和读取)HashTable
未提供订单Queue
和Stack
不提供交换,随机访问,... 我可以编写自己的数据结构,但我不想重新发明轮子,因为.NET库非常庞大。
编辑:
我需要一个提供类似事务的数据结构,例如进程优先级调度程序。第一个条目具有最高优先级,最后一个条目具有最低优先级。有时我必须改变元素的优先级(交换)或完全删除元素(删除)。我最近添加的元素应该具有最高优先级(这就是为什么我将它添加到前面位置)
答案 0 :(得分:3)
你真的需要弄清楚你打算做这些操作的频率,因为你列出了极少数的操作。
以下是我对您的想法的看法:
另外作为最后一点,您确定不需要某种自动排序,因为这样可以使这更容易。
答案 1 :(得分:2)
听起来你正在寻找的是一堆。
堆通常用于管理优先级,并且可以在队列顶部具有最高优先级项,并根据添加或从堆中删除不同优先级的项重新排列。
这是一个通用集合库,它具有间隔堆的实现: