Question: For HashTables, how do you implement both separate chaining and open addressing into this interface: public interface HashTable { public void add(String key, V value);

For HashTables, how do you implement both separate chaining and open addressing into this interface:

public interface HashTable {

public void add(String key, V value);

public V remove(String key);

public V lookup(String key);

public Object[] getValuesList();

public V[] getSortedList(V[] list);

public void printReport();

}

The printReport() method should print to the console the following statistics: - The Load Fator, that is, the ratio of used to total number of buckets. - The longest chain in the table, that is, the maximum number of collisions for a particular bucket. - The Density Factor, that is, the ratio of elements stored elements to total number of buckets. - The Chanining Factor, that is, the average length of any chain in the table.

Here is the code for the hash functions that are to be implemented:

public int additiveHash(char[] key, int TABLE_SIZE) { int hash = 0; for (char c: key) { hash += c; } return hash % TABLE_SIZE; } public int rotationalHash(char[] key, int TABLE_SIZE) { int hash = 0; for (char c: key) { hash += (c << 7) ^ (c >> (TABLE_SIZE - 7)) ^ hash; } hash = Math.abs(hash); return hash % TABLE_SIZE; }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!