11

是否有提供数据结构的库,它保留项目的顺序并且不包含任何重复项?这种数据结构是否存在适当的名称?

我希望它表现得像一个列表,nub在每次操作之后都应用。当然,我不希望它被无效地实施。

4

2 回答 2

8

这是一个解决方案:

使用带有幺半群的手指树Set作为度量。然后在插入时,首先使用measure完整的手指树检查成员资格。这给了你O(log(n))缺点和 snoc,O(1)删除。

这是另一个解决方案:

将普通列表与普通列表配对Set并获得基本相同的效果。你会得到更好的常数因子,但O(log(n))会删除。

这是一个问题:您希望在插入重复项时发生什么?是否应该保留现有职位?新职位?优先队列可能接近您想要的,具体取决于。

于 2013-07-08T13:45:53.550 回答
0

OSetfromordered-containers似乎做你想做的事。

于 2018-09-20T20:53:39.820 回答