C++ program to implement all the functions of a dictionary (ADT) using hashing

Wednesday, March 10th, 2010

/* Write a C++ program to implement all the functions of a dictionary (ADT) using hashing */

#include<iostream>
#include<conio.h>
#include<stdlib.h>
using namespace std;
# define max 10
 
typedef struct list
{
int data;
struct list  *next;
}node_type;
node_type *ptr[max],*root[max],*temp[max];
 
class Dictionary
{
public:
  int index;
 
  Dictionary();
  void insert(int);
  void search(int);
  void delete_ele(int);
};
 
Dictionary::Dictionary()
{
index=-1;
for(int i=0;i<max;i++)
{
root[i]=NULL;
ptr[i]=NULL;
temp[i]=NULL;
}
}
 
void Dictionary::insert(int key)
{
index=int(key%max);
ptr[index]=(node_type*)malloc(sizeof(node_type));
ptr[index]->data=key;
if(root[index]==NULL)
{
root[index]=ptr[index];
root[index]->next=NULL;
temp[index]=ptr[index];
}
 
else
{
temp[index]=root[index];
while(temp[index]->next!=NULL)
temp[index]=temp[index]->next;
temp[index]->next=ptr[index];
}
}
 
void Dictionary::search(int key)
{
int flag=0;
index=int(key%max);
temp[index]=root[index];
while(temp[index]!=NULL)
{
if(temp[index]->data==key)
{
cout<<"\nSearch key is found!!";
flag=1;
break;
}
else temp[index]=temp[index]->next;
}
if (flag==0)
cout<<"\nsearch key not found.......";
}
 
void Dictionary::delete_ele(int key)
{
index=int(key%max);
temp[index]=root[index];
while(temp[index]->data!=key && temp[index]!=NULL)
{
ptr[index]=temp[index];
temp[index]=temp[index]->next;
}
ptr[index]->next=temp[index]->next;
cout<<"\n"<<temp[index]->data<<" has been deleted.";
temp[index]->data=-1;
temp[index]=NULL;
free(temp[index]);
}
 
main()
{
int val,ch,n,num;
char c;
Dictionary d;
 
do
{
cout<<"\nMENU:\n1.Create";
cout<<"\n2.Search for a value\n3.Delete an value";
cout<<"\nEnter your choice:";
cin>>ch;
switch(ch)
{
case 1:cout<<"\nEnter the number of elements to be inserted:";
       cin>>n;
       cout<<"\nEnter the elements to be inserted:";
       for(int i=0;i<n;i++)
       {
       cin>>num;
       d.insert(num);
       }
       break;
case 2:cout<<"\nEnter the element to be searched:";
       cin>>n;
       d.search(n);
case 3:cout<<"\nEnter the element to be deleted:";
       cin>>n;
       d.delete_ele(n);
       break;
default:cout<<"\nInvalid choice....";
}
cout<<"\nEnter y to continue......";
cin>>c;
}while(c=='y');
getch();
}

OUTPUT

MENU:
1.Create
2.Search for a value
3.Delete an value
Enter your choice:1

Enter the number of elements to be inserted:8

Enter the elements to be inserted:10 4 5 8 7 12 6 1

Enter y to continue……y

MENU:
1.Create
2.Search for a value
3.Delete an value
Enter your choice:2

Enter the element to be searched:12

Search key is found!!
Enter the element to be deleted:1

1 has been deleted.
Enter y to continue……y

Avatar of Ranjith

Author Name :
Ranjith

Total : 8 Comments


8 Responses to “C++ program to implement all the functions of a dictionary (ADT) using hashing”

  1. archana reddy says:

    hellow sir….really u did a g8 job..

  2. Mina says:

    hey this is’nt working..

  3. m.l.priyanka says:

    hello thanks to person who have uploaded this program

  4. Varoon says:

    few errors in the program….
    corrections are..
    1.’i’ used in the ‘for loop’ in case 1 must be declared outside switch case!
    2. function ‘main’ must have return type.(void main)
    3.’break’ command missing in case 2.
    4.change #include to #include.

  5. madhavi says:

    hello sir i need programs 4 binary tree using class templates

  6. nani says:

    hi want source code for”10. Write a Java program to implement all the functions of a dictionary (ADT) using
    Hashing.”"if anybody hav can send me pleaseeeeeeeeee

  7. messi says:

    could you help me in converting this code into spelling checker!
    for example : i enter word, “acction” first it’ll change to correct word “action” and then show similar words starting from “act” prefix like actor etc

  8. chaitanya says:

    thanks dude…………..

Leave a Reply

Question and Answer
C/C++ Unix & Linux Wordpress
Source codes
C C++ Java

Free email signup

Email: