- 必须是有序的数据结构(添加元素
a, b and c
到一个空的结构,会让他们是在位置0, 1 and 2
)。 - 允许添加重复的项目。这是,我可以有一个列表
a, b, c, a, b
。 - ,可除去特定项目的所有ocurrences(如果我这样做
delete(1)
,它会删除结构1
所有ocurrences)。如果我有元素a, b, c, d, c, e
并删除元素c
,我应该得到a, b, d, e
。 - 我只需要通过两种方式访问元素。第一个是删除给定的事件(见上面的点),另一个是当我将这个结构中的数据转换为列表。
我真的不能挑选出最好的数据结构可以在这里。我首先想到了类似List的东西(问题是在移除项目时有O(n)
操作),但也许我错过了一些东西?那么树木/堆什么呢?哈希表/地图?
我将不得不假设我会尽可能多地添加删除这个数据结构。
感谢
你没有真正提到你如何期待'阅读'访问。例如,你是否通过位置访问元素?这需要多快?在删除特定元素之后,这些职位会发生什么变化?另一个元素的位置是否相应改变? – 2010-05-31 17:59:18
好点。看我的编辑。 – 2010-05-31 18:13:16
似乎戴夫的解决方案就是你正在寻找的东西。 – 2010-05-31 19:05:12