Вы находитесь на странице: 1из 2

HASHING USING LINEAR PROBING USING MODULUS OPERATOR

#include <stdio.h>
#include<stdlib.h>
#define TABLE_SIZE 5
void insert(int);
void display();
void find(int);
int htable[TABLE_SIZE]={NULL};

int main()
{
int opt,val;
while(1)
{
printf("\nPress 1. Insert\t 2. Display \t3. Find \t 4. exit \n");
scanf("%d",&opt);
switch(opt)
{
case 1:
printf("\nenter a value to insert into hash table\n");
scanf("%d",&val);
insert(val);
break;
case 2: display();
break;
case 3: printf("\nenter a value to find in hash table\n");
scanf("%d",&val);
find(val);
break;
case 4: exit(0);
}
}
}
void find(int val)
{
int index,i,flag=0,hash;
hash=val%TABLE_SIZE;
for(i=0;i<TABLE_SIZE; i++)
{
index=(hash+i)%TABLE_SIZE;
if(htable[index]==val)
{
printf("value is found at index %d",index);
flag=1;
break;
}
}
if(flag==0)
printf("\n value is not found\n");
}
void display()
{
int i;
printf("\nelements in the hash table are \n");
for(i=0;i< TABLE_SIZE; i++)
printf("\nat index %d \t value = %d",i,htable[i]);
}
void insert(int val)
{
int index,i,flag=0,hash;
hash=val%TABLE_SIZE;
for(i=0;i<TABLE_SIZE;i++)
{
index=(hash+i)%TABLE_SIZE;
if(htable[index] == NULL)
{
htable[index]=val;
flag=1;
break;
}
}
if(flag == 0)
printf("\nelement cannot be inserted\n");
}

Вам также может понравиться