Hash Search program using C

Previous
Next
#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");
}
Previous
Next

Add Comment

Courses Enquiry Form