Implementation Of Hash Table Code
#include<iostream>
using namespace std;
// Create an Entity
class Entry{
public:
int key;
int value;
Entry(int k,int v){
key= k;
value = v;
}
};
class HashTable{
Entry **temp;
public:
int size;
//Constructor
HashTable() {
cout<<" Enter Size of Table: ";
cin>>size;
temp = new Entry * [size];
for (int i = 0; i< size; i++) {
temp[i] = NULL;
}
}
// Hashing Funtion
int HashFun(int k) {
return k % size;
}
// Insertion In Hashing
void Insert(int k,int v){
if(k<=size && k>0){
int h = HashFun(k);
while(temp[h] != NULL && temp[h]->key == k){
h = HashFun(h + 1);
}
if(temp[h] != NULL)
delete temp[h];
temp[h] = new Entry(k, v);
}
else{
cout<<" You Are Enter Invalid Key "<<endl<<endl;
}
}
// Searching In Hashing
int SearchKey(int k){
int h = HashFun(k);
while (temp[h] != NULL && temp[h]->key != k){
h = HashFun(h + 1);
}
if(temp[h] == NULL){
return -1;
}
else{
return temp[h]->value;
}
}
// Delection In Hashing
void Delete(int k){
int h = HashFun(k);
while (temp[h] != NULL){
if(temp[h]->key == k)
break;
h = HashFun(h + 1);
}
if (temp[h] == NULL){
cout<<" No Element Found at Key "<<k<<endl<<endl;
return;
}
else{
delete temp[h];
}
cout<<" Element Successfuly Deleted "<<endl<<endl;
}
};
int main(){
HashTable h;
int k, v;
int c;
while(1){
cout<<endl;
cout<<" 1. Insert Element into Table"<<endl;
cout<<" 2. Search Element from Key"<<endl;
cout<<" 3. Delete Element from Key"<<endl;
cout<<" 4. Exit"<<endl;
cout<<"\nEnter your Choice: ";
cin>>c;
switch(c){
case 1:
cout<<"Enter Element to Insert: ";
cin>>v;
cout<<"Enter key at which Element to be Insert: ";
cin>>k;
h.Insert(k, v);
break;
case 2:
cout<<"Enter key which Element you want to Search: ";
cin>>k;
if(h.SearchKey(k) == -1){
cout<<" No Element Found at Key "<<k<<endl<<endl;
continue;
}
else{
cout<<" Element at Key "<<k<<" : ";
cout<<h.SearchKey(k)<<endl<<endl;
}
break;
case 3:
cout<<"\n Enter Key which Element you want to Delete: ";
cin>>k;
h.Delete(k);
break;
case 4:
exit(1);
default:
cout<<"\n Please Enter Correct Option\n";
}
}
return 0;
}
No comments:
Post a Comment
Thanks For Visiting Here...!! I will Reply you as soon as possible.