bool hashFind(hashTable table, int data)
{
size_t inc = 0;
do {
if (table->head_[(data + inc) % table->capacity_].flag_ == INUSE) {
if (table->head_[(data + inc) % table->capacity_].data_ == data) {
return true;
}
}
++inc;
} while (table->head_[(data + inc) % table->capacity_].flag_ != EMPTY && inc != table->capacity_);
return false;
}
bool hashInsert(hashTable table, int data)
{
size_t inc = 0;
do {
if (table->head_[(data + inc) % table->capacity_].flag_ != INUSE) {
table->head_[(data + inc) % table->capacity_].data_ = data;
table->head_[(data + inc) % table->capacity_].flag_ = INUSE;
return true;
}
++inc;
} while (inc != table->capacity_);
return false;
}
bool hashDelete(hashTable table, int data)
{
size_t inc = 0;
do {
if (table->head_[(data + inc) % table->capacity_].flag_ == INUSE) {
if (table->head_[(data + inc) % table->capacity_].data_ == data) {
table->head_[(data + inc) % table->capacity_].flag_ = DELETED;
return true;
}
}
++inc;
} while (table->head_[(data + inc) % table->capacity_].flag_ != EMPTY && inc != table->capacity_);
return false;
}