例如,我有这个数组
array[]
array[1] = person1
array[2] = person2
array[3] = person3
person2决定离开数组
array[]
array[1] = person1
array[2] = nil
array[3] = person3
person4进来后发现索引2为空,所以他抓住了那个索引(没有移动/重新排列数组)
array[]
array[1] = person1
array[2] = person4
array[3] = person3
非常糟糕的解释,但希望你明白了。 : - )
答案 0 :(得分:0)
听起来就像一个数组。
在许多/大多数编程语言中,您可以将数组中的值设置为未初始化(例如,Java,C ++,C#,C中的空值)(不会移动其他值)。
也许你还想要一个集合来跟踪自由索引,这将导致预期的O(1)
(基于哈希表)或O(log n)
(基于二叉搜索树),而不是O(n)
或find-free-index
操作的insert
。
如果您想有效地(O(1)
)删除没有索引的人,每个人也应该跟踪他/她自己的索引。