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
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started