Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

- In class HashTable implement a hash table and consider the following: (i) Keys are integers (therefore also negative!) and should be stored in the

- In class HashTable implement a hash table and consider the following:

(i) Keys are integers (therefore also negative!) and should be stored in the table int[] data.

(ii) As a hash function take h(x) = (x 701) mod 2000. The size of the table is therefore 2000. Be careful when computing the index of a negative key.

For example, the index of the key x = 10 is h(10) = (7010) mod 2000 = (2000(4) + 990) mod 2000 = 990.

Hence, indices should be non-negative integers between 0 and 1999!

(iii) Implement insert, which takes an integer and inserts it into a table. The method returns true, if the insertion is successful. If an element is already in the table, the function insert should return false.

(iv) Implement search, which takes an integer and finds it in the table. The method returns true, if the search is successful and false otherwise.

(v) Implement delete, which takes an integer and deletes it form the table. The method returns true, if the deletion is successful and false otherwise.

(vi) Collision should be solved by chaining. However, not as usually by linked list, but with a hash table implemented in class HashTable2 (combined structure). - In class HashTable2 implement a hash table and consider the following:

(i) Keys are integers (therefore also negative!) and should be stored in the table int[] data.

(ii) As a hash function take h(x) = (x53) mod 100. The size of the table is therefore 100. As above be careful to compute the index of a negative key correctly. In this case indices should be non-negative integers between 0 and 99!

(iii) Implement insert, which takes an integer and inserts it into a table. The method returns true, if the insertion is successful. If an element is already in the table, the function insert should return false. When inserting an element into a full table, the function insert should return false.

(iv) Implement search, which takes an integer and finds it in the table. The method returns true, if the search is successful and false otherwise.

(v) Implement delete, which takes an integer and deletes it form the table. The method returns true, if the deletion is successful and false otherwise.

(vi) Collision should be solved by open-addressing with linear probing. Be careful when deleting an element. You need a special character to indicate that the element was deleted so that the function search will work correctly. Also, be careful when inserting new element, since it can be inserted into the place indicated with the special character.

/*

* The class must complement the HashTable data structure. * For function use: h (x) = x * 701 mod 2000 * In case of collisions, use CHAPTER and use Data as a Dictionary * The structure of the hash table you need to implement (HashTable2 class). * Beware, because the key can also be a negative number */ public class HashTable { HashTable2[] data;

/* * The method accepts a number and inserts it into the table. The method returns true if it exists * the stop was successful and false otherwise */ public boolean insert(int key) { throw new UnsupportedOperationException("need to implement"); }

/*

* The method accepts a number and finds it in a table. The method returns true if it exists * the stop was successful and false otherwise */ public boolean search(int key) { throw new UnsupportedOperationException("need to implement"); }

/* * Method accepts a number and deletes it from the table. The method returns true if it exists * the stop was successful and false otherwise */ public boolean delete(int key) { throw new UnsupportedOperationException("need to implement"); } }

/* * The class must complement the data structure of the hash table. * For function use: h (x) = x * 53 mod 100 * In case of collisions, use LINEAR ADDRESS. */ public class HashTable2 {

int[] data;

/* * The method accepts a number and inserts it into the table. The method returns true if it exists * the stop was successful and false otherwise */ public boolean insert(int key) { throw new UnsupportedOperationException("need to implement"); }

/*

* The method accepts a number and finds it in a table. The method returns true if it exists * the stop was successful and false otherwise

*/ public boolean search(int key) { throw new UnsupportedOperationException("need to implement"); }

/*

* Method accepts a number and deletes it from the table. The method returns true if it exists * the stop was successful and false otherwise */ public boolean delete(int key) { throw new UnsupportedOperationException("need to implement"); } }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Fundamentals Of Database Systems

Authors: Ramez Elmasri, Shamkant B. Navathe

7th Edition Global Edition

1292097612, 978-1292097619

Students also viewed these Databases questions

Question

Identify conflict triggers in yourself and others

Answered: 1 week ago