具有复合值并快速搜索值元素的集合

时间:2013-05-03 18:34:53

标签: data-structures

我正在寻找一个类似于存储由4个整数组成的复合值的集合的数据结构:i1i2i3i4。此数据结构应具有快速查找时间,但它还应允许使用特定i3和i4快速删除成员。因此,delete_a(x)应删除i3 = xdelete_b(x)的所有成员,并删除i4 = x的所有成员。最关键的是成员查找操作,所以我想要它如果可能的话是O(1)。 i1i2i3i4的值相当大,因此我无法使用4维数组,因为它会占用太多内存。我想也许哈希表和辅助列表的某种组合可以解决这个问题。

1 个答案:

答案 0 :(得分:0)

如果你想要绝对速度,同时保持一些内存效率,我会这样做:

HashMap_a:
  Key: i3
  Value: List of Hash(i1,i2,i3,i4)
HashMap_b:
  Key: i4
  Value: List of Hash(i1,i2,i3,i4)
HashMap:
  Key: Hash(i1,i2,i3,i4)
  Value: (i1,i2,i3,i4)

delete_a只是从HashMap_a获取列表并从HashMap中删除其键位于列表中的元素。同样适用于delete_b
查找是来自HashMap

的O(1)