Collision happens when two different keys get the same index in the hash table. It means the spot is already taken.
Click to reveal answer
beginner
What is open addressing in hash tables?
Open addressing is a way to handle collisions by finding another empty spot in the table instead of using linked lists.
Click to reveal answer
beginner
How does linear probing work in open addressing?
Linear probing checks the next spots one by one (index + 1, index + 2, etc.) until it finds an empty spot to store the new key.
Click to reveal answer
intermediate
What problem can occur with linear probing and how is it called?
Clustering can happen, where many keys group together, making searches slower because many spots are checked in a row.
Click to reveal answer
intermediate
In linear probing, what happens if the table is full?
If the table is full, no empty spot is found, so insertion fails or the table needs to be resized.
Click to reveal answer
What does linear probing do when a collision occurs?
ADeletes the existing key
BCreates a linked list at the same index
CChecks the next index until an empty spot is found
DRehashes the entire table
✗ Incorrect
Linear probing moves to the next index step by step to find an empty spot.
Which of these is a downside of linear probing?
AIt can cause clustering of keys
BIt deletes keys automatically
CIt never handles collisions
DIt uses extra memory for linked lists
✗ Incorrect
Linear probing can cause clustering, where many keys group together, slowing down operations.
In open addressing, what is stored in the hash table?
AOnly keys
BOnly values
CKeys and pointers to linked lists
DKeys directly in the table slots
✗ Incorrect
Open addressing stores keys directly in the table slots, not using linked lists.
What happens if linear probing reaches the end of the table without finding an empty spot?
AIt wraps around to the start of the table
BIt stops and returns failure
CIt deletes the first key
DIt resizes the table automatically
✗ Incorrect
Linear probing wraps around to the start of the table to continue searching for an empty spot.
Which method is NOT a collision handling technique?
AChaining
BBinary search
CLinear probing
DDouble hashing
✗ Incorrect
Binary search is not used for collision handling in hash tables.
Explain how linear probing handles collisions in a hash table.
Think about what happens when the first spot is taken.
You got /4 concepts.
Describe the main disadvantage of using linear probing for collision handling.
What happens when many keys group together?
You got /3 concepts.
Practice
(1/5)
1. What is the main idea behind linear probing in collision handling for hash tables?
easy
A. Double the size of the hash table when a collision occurs.
B. If a slot is occupied, check the next slot sequentially until an empty one is found.
C. Use a linked list at each slot to store multiple elements.
D. Rehash all elements using a new hash function.
Solution
Step 1: Understand linear probing concept
Linear probing handles collisions by checking the next slot in order if the original slot is taken.
Step 2: Compare with other methods
Other methods like chaining use linked lists, resizing, or rehashing, which are different from linear probing.
Final Answer:
If a slot is occupied, check the next slot sequentially until an empty one is found. -> Option B
Quick Check:
Linear probing = sequential slot check [OK]
Hint: Linear probing means try next slot until free [OK]
Common Mistakes:
Confusing linear probing with chaining
Thinking linear probing resizes the table
Assuming rehashing is part of linear probing
2. Which of the following is the correct way to calculate the next index in linear probing for a hash table of size m when a collision occurs at index i?
easy
A. (i + 2) % m
B. (i * 2) % m
C. (i + 1) % m
D. (i - 1) % m
Solution
Step 1: Recall linear probing formula
Linear probing moves to the next slot by adding 1 to the current index and taking modulo with table size.
Step 2: Apply modulo for wrap-around
Using modulo ensures the index wraps around to the start if it reaches the end of the table.
Final Answer:
(i + 1) % m -> Option C
Quick Check:
Next index = (current + 1) mod size [OK]
Hint: Next slot = (current index + 1) mod table size [OK]
Common Mistakes:
Adding 2 instead of 1 for next index
Multiplying index instead of adding
Not using modulo for wrap-around
3. Consider a hash table of size 5 using linear probing. The hash function is h(k) = k % 5. Insert keys 7, 12, 17 in order. What is the final state of the table?
Insert 7 at index 2. For 12, index 2 is taken, so try index 3. Insert 12 at index 3. For 17, indices 2 and 3 are taken, so insert at index 4.
Final Answer:
[None, None, 7, 12, 17] -> Option A
Quick Check:
Keys placed at 2, 3, 4 with linear probing [OK]
Hint: Check hash index, then next free slot sequentially [OK]
Common Mistakes:
Placing all keys at same index ignoring collisions
Not probing to next slot after collision
Miscomputing hash values
4. The following code snippet tries to insert keys into a hash table using linear probing. What is the bug?
def insert(table, key):
m = len(table)
index = key % m
while table[index] is not None:
index = (index + 1) % m
table[index] = key
hash_table = [None]*5
insert(hash_table, 5)
insert(hash_table, 10)
insert(hash_table, 15)
insert(hash_table, 20)
insert(hash_table, 25)
insert(hash_table, 30)
medium
A. Infinite loop if table is full because no stop condition in while loop.
B. No bug; code works correctly for all insertions.
C. Wrong hash function used; should be key // m.
D. Table size should be dynamic, not fixed.
Solution
Step 1: Analyze insertion loop
The while loop continues probing until it finds an empty slot but has no check for full table.
Step 2: Identify problem when table is full
If all slots are occupied, the loop cycles endlessly, causing infinite loop.
Final Answer:
Infinite loop if table is full because no stop condition in while loop. -> Option A
Quick Check:
Full table causes infinite loop without exit [OK]
Hint: Check for full table to avoid infinite loop [OK]
Common Mistakes:
Assuming hash function is wrong
Ignoring infinite loop possibility
Thinking dynamic size fixes this bug
5. You have a hash table of size 7 using linear probing. Insert keys [14, 21, 28, 35, 42] using hash function h(k) = k % 7. After all insertions, what is the index of key 42 in the table?
hard
A. 5
B. 0
C. 6
D. 4
Solution
Step 1: Calculate initial hash indices
h(14)=0, h(21)=0, h(28)=0, h(35)=0, h(42)=0 (all keys hash to index 0).
Step 2: Insert keys using linear probing
Insert 14 at 0. For 21, index 0 taken, try 1. Insert 21 at 1. For 28, indices 0 and 1 taken, insert at 2. For 35, insert at 3. For 42, insert at 4.
Step 3: Find index of key 42
Key 42 is at index 4.
Final Answer:
4 -> Option D
Quick Check:
42 placed at first free slot after collisions [OK]
Hint: All keys collide; count steps from initial index [OK]
Common Mistakes:
Assuming key stays at initial hash index
Not probing sequentially after collisions
Miscounting index after multiple collisions
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.