void insert(HashTable ht, Item it)
{
assert(ht->nitems < ht->nslots);
int N = ht->nslots;
Item *a = ht->items;
Key k = key(it);
int i, j, h = hash(k,N);
for (j = 0; j < N; j++) {
i = (h+j)%N;
if (a[i] == NoItem) break;
if (eq(k,key(a[i]))) break;
}
if (a[i] == NoItem) ht->nitems++;
a[i] = it;
}
|