没有重复或有序集的列表

Nik*_*kov 11 haskell

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

我希望它表现得像nub每个操作后应用的列表.当然,我不认为它会被无效地实施.

scl*_*clv 8

这是一个解决方案:

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

这是另一个解决方案:

将正常列表与法线对,Set并获得基本相同的效果.你得到更好的常数因素,但O(log(n))删除.

这是一个问题:在插入副本时你想要发生什么?是否应保留现有职位?新职位?优先级队列可能接近您想要的,具体取决于.