Answers for "open hashing basic operations"

C++
0

open hashing basic operations

//open hashing , insertion,deletion,searching,displaying
#include <iostream>

using namespace std;
#define n 5
class node
{
public:
    int data;
    node*next;
};
node*hasharray[n];
void init()
{
    for(int i=0;i<n;i++)
    {
        hasharray[i]=NULL;
    }
}
void addhash(int value)
{
    node *temp=new node;
    int key=value%n;
    temp->data=value;
    temp->next=hasharray[key];
    hasharray[key]=temp;
}
int deletehash(int value)
{
    node *temp=new node;
    node*ptr=new node;
    int key=value%n;
    temp=hasharray[key];
    if(temp!=NULL)
    {
        if(temp->data==value)
        {
            ptr=temp;
            hasharray[key]=hasharray[key]->next;
            delete ptr;
            return 1;
        }
        else
        {
            while(temp->next!=NULL)
            {
                if(temp->next->data==value)
                {
                    ptr=temp->next;
                    temp->next=temp->next->next;
                    delete ptr;
                    return 1;
                }
            }
        }
    }
    return 0;
}
int searchhash(int value)
{
    int key=value%n;
    node *temp=new node;
    temp=hasharray[key];
    while(temp!=NULL)
    {
        if(temp->data==value)
        {
            return 1;
        }
        temp=temp->next;
    }
    return 0;
}
void display()
{
    for(int i=0;i<n;i++)
    {
        node *temp=new node;
        temp=hasharray[i];
        cout<<"hasharray"<<"["<<i<<"]"<<endl;
        while(temp!=NULL)
        {
            cout<<temp->data<<" ";
            temp=temp->next;
        }
        cout<<endl;
    }
}

int main()
{
    init();
    int choice;
    while(1)
    {
        cout<<"1. insert"<<endl<<"2.delete"<<endl<<"3.search"<<endl<<"4.display"<<endl<<"5.exit"<<endl;
        cout<<"enter the choice"<<endl;
        cin>>choice;
        switch(choice)
        {
        case 1:
            {
                int val;
                cout<<"enter the value you want to insert:"<<endl;
                cin>>val;
                addhash(val);
                break;
            }
        case 2:
            {
               int val;
               cout<<"enter the value you want to delete:"<<endl;
               cin>>val;
               int l=deletehash(val);
               if(l==1)
               {
                   cout<<"value deleted"<<endl;
               }
               else
               {
                   cout<<"value not found to be deleted"<<endl;
               }
               break;
            }
        case 3:
            {
              int val;
              cout<<"enter the value to be searched:"<<endl;
              cin>>val;
              int l=searchhash(val);
              if(l==1)
              {
                  cout<<"value found in hash table:"<<endl;
              }
              else
              {
                  cout<<"value not present"<<endl;
              }
              break;
            }
        case 4:
            {
                display();
                break;
            }
        case 5:
            {
                exit(0);

            }
        default:
            {
                cout<<"wrong choice :"<<endl;
                cout<<"--------------------------------------------"<<endl<<"please select between 1-5"<<endl;
                break;
            }
        }
    }

    return 0;
}
Posted by: Guest on May-24-2021

Browse Popular Code Answers by Language