我正在寻找一种类似于集合的数据结构,该集合存储由 4 个整数组成的复合值:i1
, i2
, i3
, i4
. 这种数据结构应该有快速的查找时间,但它也应该允许快速删除具有特定 i3 和 i4 的成员。所以delete_a(x)
应该删除所有成员,i3 = x
并且delete_b(x)
应该删除所有成员i4 = x
。最关键的是成员查找操作,所以如果可能的话,我希望它是 O(1)。i1
、i2
、i3
和的值i4
相当大,所以我不能使用 4 维数组,因为它会占用太多内存。我想也许哈希表和辅助列表的某种组合可以解决这个问题。
问问题
44 次
1 回答
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
查找是 O(1) 从HashMap
于 2013-05-03T18:41:03.337 回答