Instructions

Scenario

Develop an algorithm to search and remove data from a hash table using the open addressing technique.

Aim

Implement a hash table using open addressing with linear probing.

Prerequisites

To solve this activity, you have to implement the following methods in the OpenAddrHashTable.java file:

public void put(K key, V value) {         //…     }       private int searchPosition(K key) {         //…     }       public void remove(K key) {         //…     }       public Optional<V> get(K key) {         //…     }

Steps for Completion

1. Study the pseudocode shown in Snippet 3.3 and Snippet 3.4 (shown below) and implement them in Java.

2. The container class OpenAddrPair will hold your key and value in the hash table.

3. Have a flag on this container to indicate when an item is deleted.

4. Use this flag in the put operation to overwrite it if it is deleted. You can use this flag to optimize your get method using the filter method.

insert(key, value, array)     s = length(array)     hashValue = hash(key, s)     i = 0     while (i < s and array[(hashValue + i) mod s] != null)         i = i + l     if (i < s) array[(hashValue + i) mod s] = (key, value)

Snippet 3.3: Psuedocode for inserting using linear probing

search(key, array)     s = length(array)     hashValue = hash(key, s)     i = 0     while (i < s and array[(hashValue + i) mod s] != null and array[(hashValue + i) mod s].key != key)         i = i + 1         keyValue = array[(hashValue + i) mod s]         if (keyValue != null && keyValue.key == key) return keyValue.value         else return null

Snippet 3.4: Solution pseudocode for searching using linear probing

Grading

Complete each task listed below. Each task contains automated checks which are used to calculate your grade. When you have completed each task by clicking the checkbox, open the task list panel on the left navigation bar and click the “Submit” button.

Tasks

1.New OpenAddrHashTable objects are empty.

2. Implement the following methods in the OpenAddrHashTable class:

put

searchPosition

get

remove

Code Provided

import java.util.Optional;

public class OpenAddrHashTable<K, V> implements HashTable<K, V> {

private final HashProvider<K> hashProvider;

private Pair<K, V>[] array;

public OpenAddrHashTable(int capacity, HashProvider<K> hashProvider) {

array = new Pair[capacity];

this.hashProvider = hashProvider;

}

public void put(K key, V value) {

int s = size;

int hashValue = hash(key, s)

int i = 0;

while (i < s && array.get((hashValue + i) % s) != null)

i = i + 1;

if (i < s) array.set((hashValue + i) % s,new Pair<>(key,value));

}

private int searchPosition(K key) {

int s = size;

int hashValue = hash(key, s);

int i = 0;

while (i < s && array.get((hashValue + i) % s) != null && array.get((hashValue + i) % s).getKey() != key){

i = i + 1;

Pair<K,V>keyValue = array.get((hashValue + i) % s);

if (keyValue != null && keyValue.getKey()== key) return i;

else return -1;

}

return -1;

}

public void remove(K key) {

int pos=searchPosition(key);

if(pos>=0)

array.set(pos, null);

}

public Optional<V> get(K key) {

// write your code here

return Optional.empty();

}

}

Found something interesting ?

• On-time delivery guarantee
• PhD-level professional writers
• Free Plagiarism Report

• 100% money-back guarantee
• Absolute Privacy & Confidentiality
• High Quality custom-written papers

Related Model Questions

Feel free to peruse our college and university model questions. If any our our assignment tasks interests you, click to place your order. Every paper is written by our professional essay writers from scratch to avoid plagiarism. We guarantee highest quality of work besides delivering your paper on time.

Grab your Discount!

25% Coupon Code: SAVE25
get 25% !!