Write a program in C to implement hash function ( Division method) with two collision resolution techniques (Linear probing & Quadratic probing).

Program Code:
#include <stdio.h>
#include <conio.h>
int tsize;
int hasht(int key) // division method for hashing
{
int i ;
i = key%tsize ;
return i;
}
int rehashl(int key) // Linear probing function
{
int i ;
i = (key+1)%tsize ;
return i ;
}
int rehashq(int key, int j) // Quadratic probing function
{
int i ;
i = (key+(j*j))%tsize ;
return i ;
}
void main()
{
int key,arr[20],hash[20],i,n,s,op,j,k ;
clrscr() ;
printf ("Enter the size of the hash table:  ");
scanf ("%d",&tsize);
printf ("nEnter the number of elements: ");
scanf ("%d",&n);
for (i=0;i<tsize;i++)
hash[i]=-1 ;
printf ("Enter Elements: ");
for (i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
do
{
scanf("%d",&op);
switch(op)
{
case 1:
for (i=0;i<tsize;i++)
hash[i]=-1 ;
for(k=0;k<n;k++)
{
key=arr[k] ;
i = hasht(key);
while (hash[i]!=-1)
{
i = rehashl(i);
}
hash[i]=key ;
}
printf("nThe elements in the array are: ");
for (i=0;i<tsize;i++)
{
printf("n  Element at position %d: %d",i,hash[i]);
}
break ;

case 2:
for (i=0;i<tsize;i++)
hash[i]=-1 ;
for(k=0;k<n;k++)
{
j=1;
key=arr[k] ;
i = hasht(key);
while (hash[i]!=-1)
{
i = rehashq(i,j);
j++ ;
}
hash[i]=key ;
}
printf("nThe elements in the array are: ");
for (i=0;i<tsize;i++)
{
printf("n Element at position %d: %d",i,hash[i]);
}
break ;
}
}
while(op!=3);
getch() ;
}

Output:
Enter the size of the hash table:  10
Enter the number of elements: 8
Enter Elements: 63 24 27 72 81 101 36 92

1.Linear Probing
3.Exit

The elements in the array are:
Element at position 0: -1
Element at position 1: 81
Element at position 2: 72
Element at position 3: 63
Element at position 4: 24
Element at position 5: 101
Element at position 6: 36
Element at position 7: 27
Element at position 8: 92
Element at position 9: -1

1.Linear Probing
3.Exit

Thanks
Mukesh Rajput

Mukesh Rajput

I am a Computer Engineer, a small amount of the programming tips as it’s my hobby, I love to travel and meet people so little about travel, a fashion lover and love to eat food, I am investing a good time to keep the body fit so little about fitness also..