Menu

Get Help Please Info Provided Lesson Psuedocode Bold Included 4 Steps Completion Develop Q43787986

Can I get help with this please?

No more info provided in lesson.

The psuedocode (below in bold)  is included after #4″Steps for completion” .

Develop an algorithm to search and remove data from a hash tableusing the open addressing technique. Aim: Implement a hash tableusing open addressing with linear probing.

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

public void put(K key, V value) { //… } private int searchPosition(K key) { //… } public void remove(K key) { //… } public Optional 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 valuein the hash table.
  3. Have a flag on this container to indicate when an item isdeleted.
  4. Use this flag in the put operation to overwrite it if it isdeleted. You can use this flag to optimize your get method usingthe 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 linearprobing

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 searchingusing linear probing

Tasks

New OpenAddrHashTable objects are empty.

1 Implement the following methods in the OpenAddrHashTableclass:

  1. put
  2. searchPosition
  3. get
  4. remove

Code given:

import java.util.Optional;

public class OpenAddrHashTable implements HashTable {
private final HashProvider hashProvider;
private Pair[] array;

public OpenAddrHashTable(int capacity, HashProviderhashProvider) {
array = new Pair[capacity];
this.hashProvider = hashProvider;
}

public void put(K key, V value) {
// write your code here
}

private int searchPosition(K key) {
// write your code here
}

public void remove(K key) {
// write your code here
}

public Optional get(K key) {
// write your code here
return Optional.empty();
}
}

Expert Answer


Answer to Can I get help with this please? No more info provided in lesson. The psuedocode (below in bold) is included after #4 “S…

OR