```
COMP 410, Fall 2012

Sample problems for Midterm Exam 1

1)  (a) Below are two hash tables.  The left one will use linear probing
to resolve collisions.  The right one will hash into lists to resolve
collisions.  Fill in each table with the following input items in
the order given left to right:

alpha beta gamma delta epsilon zeta eta theta iota kappa lambda

Use this hash function:
take the position in the alphabet of the first third letters,
add them; then multiply by the length of the word; then mod
the result by 13.
Example: alpha  a is 1, p is 16, sum 17. 17*5 is 85. 85 mod 13 is 7
so alpha hashes to slot 7.

an alphabet, with ordinal positions, for your viewing pleasure
A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z
1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

linear                 hash into lists
probing

0: iota                0: _____

1: _________           1: _____

2: delta               2: _____ --> zeta --> delta

3: zeta                3: _____

4: _________           4: _____

5: eta                 5: _____--> kappa --> eta

6: kappa               6: _____

7: alpha               7: _____ --> lambda --> alpha

8: theta               8: _____ --> theta

9: gamma               9: _____ --> gamma

10: beta               10: _____ --> beta

11: lambda             11: _____

12: epsilon            12: _____ --> iota --> epsilon

(b) We ended up storing 11 items in the tables, and let's say we
expected to have 11 items for storage.  Was the choice of 13 for
table size a good one for the linear probing table?  If so, cool...
if not, what size would have been better?

13 is too small, we want a load of 1/2 so we need twice as many
slots as items stored... so we expected 11 so we need a prime
larger than 22.. so 23 is better. We would adjust the hash function
to mod 23

Same question for the hash-into-lists table... was 13 a good size?
If so, cool, ... if not, what size would have been better?