0% found this document useful (0 votes)
63 views5 pages

DSA Lab 10

The program implements hashing to map employee records to array indices using a hash function that takes the modulo of the key. Collisions are resolved using linear probing. It takes employee records as input, hashes them to indices, and displays the hash table with and without empty entries.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
63 views5 pages

DSA Lab 10

The program implements hashing to map employee records to array indices using a hash function that takes the modulo of the key. Collisions are resolved using linear probing. It takes employee records as input, hashes them to indices, and displays the hash table with and without empty entries.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

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

You might also like