Question: need help on c++ homework. Use the code below to help update the task above Full Functioning Legacy Code That Implements Hash Map Between Integer
need help on c++ homework.

Use the code below to help update the task above
Full Functioning Legacy Code That Implements Hash Map Between Integer key value pairs.
(int key, int value)
Copy and Paste the Code and Execute
Determine how the code is operating,
Task 1 requires a (String key, string value),
#include
#include
#include
#include
using namespace std;
const int TABLE_SIZE = 128;
/*
* HashEntry Class Declaration
*/
class HashEntry
{
public:
int key;
int value;
HashEntry(int key, int value)
{
this->key = key;
this->value = value;
}
};
/*
* HashMap Class Declaration
*/
class HashMap
{
private:
HashEntry **table;
public:
HashMap()
{
table = new HashEntry * [TABLE_SIZE];
for (int i = 0; i
{
table[i] = NULL;
}
}
/*
* Hash Function
*/
int HashFunc(int key)
{
return key % TABLE_SIZE;
}
/*
* Insert Element at a key
*/
void Insert(int key, int value)
{
int hash = HashFunc(key);
while (table[hash] != NULL && table[hash]->key != key)
{
hash = HashFunc(hash + 1);
}
if (table[hash] != NULL)
delete table[hash];
table[hash] = new HashEntry(key, value);
}
/*
* Search Element at a key
*/
int Search(int key)
{
int hash = HashFunc(key);
while (table[hash] != NULL && table[hash]->key != key)
{
hash = HashFunc(hash + 1);
}
if (table[hash] == NULL)
return -1;
else
return table[hash]->value;
}
/*
* Remove Element at a key
*/
void Remove(int key)
{
int hash = HashFunc(key);
while (table[hash] != NULL)
{
if (table[hash]->key == key)
break;
hash = HashFunc(hash + 1);
}
if (table[hash] == NULL)
{
cout
return;
}
else
{
delete table[hash];
}
cout
}
~HashMap()
{
for (int i = 0; i
{
if (table[i] != NULL)
delete table[i];
delete[] table;
}
}
};
int main()
{
HashMap hash;
int key, value;
int choice;
while (true)
{
cout
cout
cout
cout
cout
cout
cout
cout
cin>>choice;
switch(choice)
{
case 1:
cout
cin>>value;
cout
cin>>key;
hash.Insert(key, value);
break;
case 2:
cout
cin>>key;
if (hash.Search(key) == -1)
{
cout
continue;
}
else
{
cout
cout
}
break;
case 3:
cout
cin>>key;
hash.Remove(key);
break;
case 4:
exit(1);
default:
cout
}
}
return 0;
}
Here is how the execution should perform and look like below. The is the teachers excution this is how he wants it.

Task 1 HardCode a C Hash Table that Will Accept a Key as String and Map to String Value First Name "Jane" "John" "Susan" Last Name "Smith" "Do" "Collins" "Rodgers "Jones" "Wright" "Bader" "Eric" "Mike" Create Methods to Insert: insert(key, value) insert("First", "Last") Findvalue("First") Method will return value Delete("First") ? Method will delete key and value
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
