#include<stdio.h>
struct node
{
int data;
struct node *next;
}*hashtable[5];
void openhashing();
void insert(int);
void search(int);
void main()
{
int choice, num;
char ch ;
openhashing();
while(1)
{
printf("1.Insert Data \n");
printf("2.Search Data \n");
printf("3.Exit \n");
printf("Enter your choice:");
scanf("%d", &choice);
switch(choice)
{
case 1 : printf("Enter element to insert :");
scanf("%d",&num);
insert(num);
break;
case 2 : printf("\nEnter a key to search : ");
scanf("%d",&num);
search(num);
break;
case 3 : exit(1);
default: printf("Invalid choice\n\n");
}
}
}
void openhashing()
{
int i;
for(i=0 ; i<5 ; i++)
{
hashtable[i] = NULL;
}
}
void insert(int element)
{
struct node *t;
int rem;
rem=element%5;
t=(struct node*)malloc(sizeof(struct node));
t->data=element;
t->next=hashtable[rem];
hashtable[rem]=t;
}
void search(int element)
{
struct node *t;
int remainder,found=0;
remainder=element%5;
t = hashtable[remainder];
while(t!=NULL)
{
if(t->data==element)
{
found=1;
break;
}
else
t=t->next;
}
if(!found)
printf("Element not found\n\n");
else
printf("Element found\n\n");
}
No Comments