Linear Probing
- Describe "Open Addressing with Linear Probing" as a collision resolution.
Suppose the calculated index for an item's key points to a position occupied by another item. In that case, we increment the index by a constant step size (usually $1$). Then, we keep incrementing the index (modulo the table length to allow for table wraparound) until we find an empty position to insert the key.
int index = getIndex(key);
// if table[index] is occupied, then
for(int i = 0; i < M; i++) {
index = (getIndex(key) + i) % M;
// stop the loop when table[index] is available!
}
// if we get here and haven't inserted the key, the table is full!