are writing program for small handheld device)then we can use the alternative approach of always storing each entry directly in bucketat most one entry per bucket this approach saves space because no auxiliary structures are employedbut it requires bit more complexity to deal with collisions there are several vari ants of this approachcollectively referred to as open addressing schemeswhich we discuss next open addressing requires that the load factor is always at most and that entries are stored directly in the cells of the bucket array itself linear probing simple open addressing method for collision handling is linear probing in this methodif we try to insert an entry (kvinto bucket [ithat is already occupiedwhere ( )then we try next at [( modnif [( mod nis also occupiedthen we try [( mod ]and so onuntil we find an empty bucket that can accept the new entry once this bucket is locatedwe simply insert the entry there of coursethis collision resolution strategy requires that we change the implementation of the get(kvoperation in particularto perform such searchfollowed by either replacement or insertionwe must examine consecutive buck etsstarting from [ ( )]until we either find an entry with key equal to or we find an empty bucket (see figure the name "linear probingcomes from the fact that accessing cell of the bucket array can be viewed as "probefigure insertion into hash table with integer keys using linear probing the hash function is (kk mod values associated with keys are not shown to implement remove( )we mightat firstthink we need to do consider able amount of shifting of entries to make it look as though the entry with key was never insertedwhich would be very complicated typical way to get around this difficulty is to replace deleted entry with special "availablemarker object with this special marker possibly occupying buckets in our hash tablewe modify our search algorithm for remove(kor get(kso that the search for