n个元素和O(1)操作的数据结构?
在这里,我们将看到一个具有n个元素和O(1)运算的数据结构。因此,这些操作将花费固定的时间来执行。
数据结构将包含n个元素(从0到n-1)。数据可以是任何顺序。插入,删除和搜索将花费O(1)的时间。
为了解决这个问题,我们将使用一个布尔数组。这将表明该物品是否存在于位置i。如果该项目存在,它将保持1,否则为0。
算法
初始化(n)
begin fill all elements of the Boolean array as 0 end
插入(i)
begin set element at index i as 1(true) end
删除(i)
begin set element at index i as 0(false) end
搜索(i)
begin return item at position i end
示例
//initialization void init(int n) { bool dataStructure[n]; for (int i = 0; i<n; i++) dataStructure[i] = 0; } //插入 void insert(unsigned i) { dataStructure[i] = 1; } //删除 void delete(unsigned i) { dataStructure[i] = 0; } //搜索 bool 搜索(unsigned i) { return dataStructure[i]; }