Design and develop a program in C that uses Hash Function H:K->L as H(K)=K mod m (reminder method)
and implement hashing technique to map a given key K to the address space L. Resolve the collision (if
any) using linear probing.
#include<stdlib.h>
#define MAX 100
int main()
{
int n,m,ht[MAX],i, j, k, rec, address, homebucket, currentbucket,
count = 0, choice;
printf("Enter the number of employee records : ");
scanf("%d", &n);
for(i = 0; i < MAX; i++)
ht[i] = -1;
for(k = 0; k <n; k++)
{
printf("\nEnter the record %d\n", k+1);
scanf("%d", &rec);
address = rec % MAX;
homebucket = address;
currentbucket = homebucket;
while(ht[currentbucket] != -1)
{
currentbucket = (currentbucket + 1) % MAX;
if(currentbucket == homebucket)
{
printf("Hash Table Overflow");
exit(0);
}
count++;
}
if(count != 0)
printf("Collision occured %d times and solved using
Linear Probing\n", count);
count = 0;
ht[currentbucket] = rec;
printf("Record : %d\nHome Address : %d\nCurrent Adrress :
%d\n",rec,homebucket,currentbucket);
}
printf("\nHASH TABLE DISPLAY\n");
while(1)
{
printf("\n\n**********************MENU*****************");
printf("\n1. Complete Hash table contents\n2. Hash Table
showing only record entries\n3. Exit\n\n");
printf("Enter your choice : ");
scanf("%d", &choice);
switch(choice)
{
case 1 : printf("Complete Hash Table Contents :\n");
for(j = 0; j < MAX; j++)
printf("%d %d\n",j,ht[j]);
break;
case 2 : printf("Hash Table showing Records : \n");
for(j = 0; j < MAX; j++)
if(ht[j] != -1)
printf("%d %d\n",j,ht[j]);
break;
case 3 : exit(0);
break;
}
}
}
OUTPUT:
Enter the number of employee records : 5
Enter the record 1
1231
Record : 1231
Home Address : 31
Current Adrress : 31
Enter the record 2
1299
Record : 1299
Home Address : 99
Current Adrress : 99
Enter the record 3
1265
Record : 1265
Home Address : 65
Current Adrress : 65
Enter the record 4
2231
Collision occured 1 times and solved using Linear Probing
Record : 2231
Home Address : 31
Current Adrress : 32
Enter the record 5
2299
Collision occured 1 times and solved using Linear Probing
Record : 2299
Home Address : 99
Current Adrress : 0
HASH TABLE DISPLAY
**********************MENU*****************
1. Complete Hash table contents
2. Hash Table showing only record entries
3. Exit
Enter your choice : 1
Complete Hash Table Contents :
0 2299
1 -1
2 -1
3 -1
4 -1
5 -1
6 -1
7 -1
8 -1
9 -1
10 -1
11 -1
12 -1
13 -1
14 -1
15 -1
16 -1
17 -1
18 -1
19 -1
20 -1
21 -1
22 -1
23 -1
24 -1
25 -1
26 -1
27 -1
28 -1
29 -1
30 -1
31 1231
32 2231
33 -1
34 -1
35 -1
36 -1
37 -1
38 -1
39 -1
40 -1
41 -1
42 -1
43 -1
44 -1
45 -1
46 -1
47 -1
48 -1
49 -1
50 -1
51 -1
52 -1
53 -1
54 -1
55 -1
56 -1
57 -1
58 -1
59 -1
60 -1
61 -1
62 -1
63 -1
64 -1
65 1265
66 -1
67 -1
68 -1
69 -1
70 -1
71 -1
72 -1
73 -1
74 -1
75 -1
76 -1
77 -1
78 -1
79 -1
80 -1
81 -1
82 -1
83 -1
84 -1
85 -1
86 -1
87 -1
88 -1
89 -1
90 -1
91 -1
92 -1
93 -1
94 -1
95 -1
96 -1
97 -1
98 -1
99 1299
**********************MENU*****************
1. Complete Hash table contents
2. Hash Table showing only record entries
3. Exit
Enter your choice : 2
Hash Table showing Records :
0 2299
31 1231
32 2231
65 1265
99 1299
**********************MENU*****************
1. Complete Hash table contents
2. Hash Table showing only record entries
3. Exit
Enter your choice : 3