【发布时间】:2013-01-05 00:22:51
【问题描述】:
我正在寻找一种数据结构,它提供:
- 在前面添加一个元素
- 交换两个元素
- 移除元素
- 当我添加一个元素(不是在最后一个位置)时,其他元素应该向后滑动(就像在队列中一样)
- 访问每个元素
- 通用会很好,但不是必需的
我在 MSDN 上找到的数据结构不能满足我的要求
-
List和LinkedList不提供交换方法 - 我可以使用
ArrayList来做到这一点,但我想当我在前面位置添加一个元素时它的效率非常低(因为必须复制和读取后面的所有元素) -
HashTable不提供订单 -
Queue和Stack不提供交换、随机访问,...
我可以编写自己的数据结构,但我不想重新发明轮子,因为 .NET 库太大了。
编辑:
我需要一个数据结构来提供类似的东西,比如进程优先级调度程序。第一个条目的优先级最高,最后一个条目的优先级最低。有时我必须更改元素的优先级(交换)或完全删除元素(删除)。我最近添加的元素应该具有最高优先级(这就是我将它添加到最前面的原因)
【问题讨论】:
-
我怀疑是否有一种结构提供了交换方法......它很容易实现......
-
“重新发明轮子的好处是你可以得到一个轮子。” - 道格拉斯·克罗克福德
标签: c# data-structures