Ở đây chúng ta sẽ thấy một cấu trúc dữ liệu với n phần tử và các phép toán O (1). Vì vậy, các hoạt động sẽ mất khoảng thời gian không đổi để thực hiện.
Cấu trúc dữ liệu sẽ chứa n phần tử (từ 0 đến n-1). Dữ liệu có thể theo bất kỳ thứ tự nào. Việc chèn, xóa và tìm kiếm sẽ mất O (1) khoảng thời gian.
Để giải quyết vấn đề này, chúng ta sẽ sử dụng một mảng Boolean. Điều này sẽ cho biết rằng mặt hàng có hay không ở vị trí thứ i. Nếu mặt hàng hiện diện, nó sẽ chứa 1, ngược lại là 0.
Thuật toán
khởi tạo (n)
begin fill all elements of the Boolean array as 0 end
insert (i)
begin set element at index i as 1(true) end
xóa (i)
Phần tửbegin set element at index i as 0(false) end
tìm kiếm (i)
begin return item at position i end
Ví dụ
//initialization
void init(int n) {
bool dataStructure[n];
for (int i = 0; i<n; i++)
dataStructure[i] = 0;
}
//Insertion
void insert(unsigned i) {
dataStructure[i] = 1;
}
//Deletion
void delete(unsigned i) {
dataStructure[i] = 0;
}
//Search
bool search(unsigned i) {
return dataStructure[i];
}