A hash table is a data structure that stores key-value pairs. It uses a hash function to convert keys into an index where the value is stored, allowing fast data retrieval.
Click to reveal answer
beginner
What is the role of a hash function in a hash table?
A hash function takes a key and returns an integer index. This index tells where to store or find the value in the hash table.
Click to reveal answer
intermediate
Why do collisions happen in a hash table?
Collisions happen when two different keys produce the same index from the hash function. This means both values want to be stored in the same place.
Click to reveal answer
intermediate
Name one common method to handle collisions in hash tables.
One common method is chaining, where each index stores a list of key-value pairs. If multiple keys hash to the same index, they are stored in the list at that index.
Click to reveal answer
advanced
What properties make a good hash function?
A good hash function distributes keys evenly across the table, is fast to compute, and minimizes collisions.
Click to reveal answer
What does a hash function output in a hash table?
AThe original key
BAn index to store the value
CThe value associated with the key
DA random number
✗ Incorrect
The hash function outputs an index where the value is stored or retrieved.
What is a collision in a hash table?
AWhen a key is not found
BWhen two keys have the same value
CWhen two keys produce the same index
DWhen the table is empty
✗ Incorrect
A collision happens when two different keys produce the same index from the hash function.
Which method stores multiple key-value pairs at the same index to handle collisions?
AChaining
BOpen addressing
CLinear search
DSorting
✗ Incorrect
Chaining stores multiple pairs in a list at the same index to handle collisions.
Why should a hash function distribute keys evenly?
ATo reduce collisions and improve speed
BTo make the table smaller
CTo store keys in order
DTo use less memory
✗ Incorrect
Even distribution reduces collisions and makes data retrieval faster.
What is stored in a hash table?
AOnly keys
BOnly values
CIndexes only
DKey-value pairs
✗ Incorrect
Hash tables store key-value pairs for fast lookup.
Explain how a hash table uses a hash function to store and retrieve data.
Think about how a key becomes a place to find the value.
You got /3 concepts.
Describe what a collision is in a hash table and one way to handle it.
Imagine two people trying to sit in the same chair.
You got /3 concepts.
Practice
(1/5)
1. What is the main purpose of a hash function in a hash table?
easy
A. To encrypt the data before storing
B. To convert a key into an index for storing data
C. To sort the data stored in the hash table
D. To count the number of elements in the table
Solution
Step 1: Understand the role of a hash function
A hash function takes a key and converts it into a number called an index.
Step 2: Connect index to data storage
This index tells where to store or find the data in the hash table.
Final Answer:
To convert a key into an index for storing data -> Option B
Quick Check:
Hash function = key to index [OK]
Hint: Hash function maps keys to storage positions [OK]
Common Mistakes:
Thinking hash function sorts data
Confusing hash function with encryption
Believing hash function counts elements
2. Which of the following is the correct way to declare a hash function in C that takes an integer key and returns an integer index?
easy
A. int hashFunction(void key);
B. void hashFunction(int key);
C. int hashFunction(int key);
D. hashFunction int(int key);
Solution
Step 1: Check function return type and parameters
The function should return an int and take an int parameter.
Step 2: Verify syntax correctness
int hashFunction(int key); matches C syntax: return type first, then function name, then parameter list.
Final Answer:
int hashFunction(int key); -> Option C
Quick Check:
Correct C function declaration = int hashFunction(int key); [OK]
Hint: Function syntax: return_type name(parameter_type parameter) [OK]
Common Mistakes:
Using void return type when int is needed
Incorrect parameter type syntax
Wrong order of function declaration parts
3. Consider the following C code snippet for a simple hash function and hash table insertion:
#include <stdio.h>
int hashFunction(int key) {
return key % 5;
}
int main() {
int hashTable[5] = {-1, -1, -1, -1, -1};
int keys[] = {12, 22, 32};
for (int i = 0; i < 3; i++) {
int index = hashFunction(keys[i]);
hashTable[index] = keys[i];
}
for (int i = 0; i < 5; i++) {
printf("%d ", hashTable[i]);
}
return 0;
}
What is the output of this program?
medium
A. -1 -1 32 -1 -1
B. 12 22 32 -1 -1
C. -1 22 32 -1 12
D. 12 -1 -1 22 32
Solution
Step 1: Calculate hash indices for each key
12 % 5 = 2, 22 % 5 = 2, 32 % 5 = 2.
Step 2: Insert keys into hashTable at calculated indices
All keys map to index 2, so last key 32 overwrites previous ones. hashTable = {-1, -1, 32, -1, -1}.
Final Answer:
-1 -1 32 -1 -1 -> Option A
Quick Check:
Collision overwrites at index 2 = -1 -1 32 -1 -1 [OK]
Hint: Check modulo results and overwrites in array [OK]
Common Mistakes:
Assuming keys store at different indices
Ignoring collisions overwrite
Miscomputing modulo operation
4. The following C code tries to insert keys into a hash table but has a bug:
int hashFunction(int key) {
return key % 10;
}
int main() {
int hashTable[10];
int keys[] = {5, 15, 25};
for (int i = 0; i < 3; i++) {
int index = hashFunction(keys[i]);
if (hashTable[index] == -1) {
hashTable[index] = keys[i];
}
}
return 0;
}
What is the bug in this code?
medium
A. Keys array is not declared correctly
B. hashFunction returns wrong index
C. Loop condition should be i <= 3
D. hashTable array is not initialized to -1
Solution
Step 1: Check initialization of hashTable
hashTable is declared but not initialized, so values are garbage, not -1.
Step 2: Understand impact on insertion condition
Condition 'hashTable[index] == -1' may never be true, so keys won't insert properly.
Final Answer:
hashTable array is not initialized to -1 -> Option D
Quick Check:
Uninitialized array causes insertion failure [OK]
Hint: Always initialize hash table slots before use [OK]
Common Mistakes:
Assuming default zero initialization
Changing loop bounds incorrectly
Misunderstanding hash function correctness
5. You want to design a hash function for strings in C that maps each string to an index in a hash table of size 10. Which approach below is the best to reduce collisions?
hard
A. Multiply each character's ASCII by its position, sum all, then modulo 10
B. Use only the ASCII value of the first character modulo 10
C. Return a fixed index like 0 for all strings
D. Sum ASCII values of all characters and take modulo 10
Solution
Step 1: Evaluate simple sum method
Summing ASCII values (Sum ASCII values of all characters and take modulo 10) can cause many collisions for anagrams.
Step 2: Consider position-weighted sum
Multiplying each character by its position (Multiply each character's ASCII by its position, sum all, then modulo 10) creates more unique values, reducing collisions.
Step 3: Reject poor methods
Using only first character (Use only the ASCII value of the first character modulo 10) or fixed index (Return a fixed index like 0 for all strings) causes many collisions.
Final Answer:
Multiply each character's ASCII by its position, sum all, then modulo 10 -> Option A
Quick Check:
Position-weighted sum reduces collisions best [OK]
Hint: Use character positions to spread hash values [OK]
Common Mistakes:
Using only first character causes collisions
Ignoring character positions
Using fixed index for all keys
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.