Collision happens when two different keys get the same index in the hash table.
Click to reveal answer
beginner
What does open addressing mean in collision handling?
Open addressing means finding another empty spot in the table when a collision happens, instead of using extra space like linked lists.
Click to reveal answer
beginner
Explain linear probing in simple words.
Linear probing checks the next spots one by one in the table until it finds an empty place to store the new key.
Click to reveal answer
intermediate
What problem can linear probing cause if many collisions happen?
It can cause clustering, where many keys group together, making search slower.
Click to reveal answer
beginner
How do you find a key in a hash table using linear probing?
Start at the hashed index and check each spot one by one until you find the key or an empty spot.
Click to reveal answer
What happens when a collision occurs in open addressing with linear probing?
AResize the hash table immediately
BCreate a linked list at the slot
CIgnore the new key
DCheck the next slot sequentially until an empty slot is found
✗ Incorrect
Linear probing checks the next slots one by one to find an empty slot.
Which of these is a downside of linear probing?
AIt uses extra memory for linked lists
BIt can cause clustering of keys
CIt never finds an empty slot
DIt requires complex data structures
✗ Incorrect
Linear probing can cause clustering, which slows down operations.
In linear probing, if the hash index is 3 and slot 3 is full, which slot is checked next?
ASlot 4
BSlot 2
CSlot 0
DSlot 3 again
✗ Incorrect
Linear probing checks the next slot sequentially, so slot 4 is next.
What is the main goal of collision handling in hash tables?
ATo store duplicate keys
BTo delete keys quickly
CTo find a place for keys that hash to the same index
DTo sort keys in order
✗ Incorrect
Collision handling finds a place for keys that share the same hash index.
Which method is NOT a form of open addressing?
ASeparate chaining
BQuadratic probing
CLinear probing
DDouble hashing
✗ Incorrect
Separate chaining uses linked lists, not open addressing.
Describe how linear probing handles collisions in a hash table.
Think about moving step-by-step to find a free spot.
You got /4 concepts.
Explain the problem of clustering in linear probing and why it happens.
Imagine many people standing in a line waiting for free seats.
You got /4 concepts.
Practice
(1/5)
1. What is the main idea behind linear probing in collision handling for hash tables?
easy
A. If a collision occurs, check the next slot sequentially until an empty slot is found.
B. Use a linked list at each slot to store multiple elements.
C. Double the size of the hash table when a collision happens.
D. Replace the existing element in the slot with the new one.
Solution
Step 1: Understand collision handling
When two keys hash to the same slot, a collision occurs and must be resolved.
Step 2: Explain linear probing method
Linear probing resolves collisions by checking the next slot in order until an empty one is found.
Final Answer:
If a collision occurs, check the next slot sequentially until an empty slot is found. -> Option A
Quick Check:
Linear probing = sequential slot check [OK]
Hint: Linear probing checks next slots one by one [OK]
Common Mistakes:
Confusing linear probing with chaining
Thinking linear probing replaces existing elements
Assuming table size doubles on collision
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 current index is i?
easy
A. (i + 1) % m
B. (i + 3) % m
C. (i - 1) % m
D. (i * 2) % m
Solution
Step 1: Understand linear probing index calculation
Linear probing moves to the next slot by adding 1 to the current index.
Step 2: Apply modulo to wrap around
To stay within table bounds, use modulo with table size: (i + 1) % m.
Final Answer:
(i + 1) % m -> Option A
Quick Check:
Next index = (current + 1) mod size [OK]
Hint: Next slot = (current index + 1) mod table size [OK]
Common Mistakes:
Using multiplication instead of addition
Not using modulo causing out-of-bound errors
Subtracting instead of adding for next slot
3. Consider a hash table of size 5 with linear probing. Insert keys 7, 12, 17 in that order using hash function h(k) = k % 5. What is the final state of the table?
Insert 7 at index 2. For 12, index 2 is taken, so check index 3 (empty), insert 12. For 17, indexes 2 and 3 taken, check index 4 (empty), insert 17.
Final Answer:
[null, null, 7, 12, 17] -> Option D
Quick Check:
All keys placed sequentially after collision [OK]
Hint: Check hash, then next slots if occupied [OK]
Common Mistakes:
Placing keys at wrong indices ignoring collisions
Not applying modulo for hash function
Assuming keys overwrite existing ones
4. The following Go code snippet tries to insert keys into a hash table using linear probing. What is the error?
func insert(table []int, key int) {
m := len(table)
index := key % m
for table[index] != -1 {
index = (index + 1) % m
}
table[index] = key
}
// Initial table: [-1, -1, -1, -1, -1]
// Insert keys: 3, 8, 13
medium
A. The loop condition should check for zero instead of -1.
B. The code does not handle the case when the table is full, causing an infinite loop.
C. The initial table should be initialized with zeros, not -1.
D. The modulo operation should be done with key, not m.
Solution
Step 1: Analyze loop condition and termination
The loop continues while the slot is occupied (not -1). If the table is full, the loop never ends.
Step 2: Identify missing full table check
There is no check to stop after probing all slots, so infinite loop can occur if table is full.
Final Answer:
The code does not handle the case when the table is full, causing an infinite loop. -> Option B
Quick Check:
Missing full table check causes infinite loop [OK]
Hint: Always check for full table to avoid infinite loops [OK]
Common Mistakes:
Ignoring full table condition
Confusing initial empty slot value
Misusing modulo operation
5. You have a hash table of size 7 using linear probing. The hash function is h(k) = k % 7. You insert keys 10, 20, 15, 7, 32 in this order. After these insertions, you want to insert key 24. Which index will key 24 be placed at?
hard
A. Index 3
B. Index 4
C. Index 5
D. Index 6
Solution
Step 1: Insert keys and find their positions
h(10)=3, insert at 3. h(20)=6, insert at 6. h(15)=1, insert at 1. h(7)=0, insert at 0. h(32)=4, insert at 4.
Step 2: Find position for key 24
h(24)=3, but index 3 occupied by 10. Check next index 4 (occupied by 32), then 5 (empty), so insert at 5.
Final Answer:
Index 5 -> Option C
Quick Check:
Linear probe from 3 to 5 for key 24 [OK]
Hint: Probe next slots until empty found [OK]
Common Mistakes:
Stopping at first collision without probing
Not applying modulo for wrap-around
Misplacing keys ignoring occupied slots
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.