0% found this document useful (0 votes)
31 views12 pages

12 LinearProbing

The program implements hashing using a hash function that maps keys to addresses in an array using modulo. It handles collisions using linear probing. Employee IDs entered by the user are hashed and stored in the array, with collisions resolved by probing to the next empty slot. The full and filtered hash tables are displayed.

Uploaded by

Manga Anime
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views12 pages

12 LinearProbing

The program implements hashing using a hash function that maps keys to addresses in an array using modulo. It handles collisions using linear probing. Employee IDs entered by the user are hashed and stored in the array, with collisions resolved by probing to the next empty slot. The full and filtered hash tables are displayed.

Uploaded by

Manga Anime
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 12

/* Lab Program 12

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.

*/

// Header files

#include<stdio.h>

#include<stdlib.h>

#define MAX 100

//Prototypes

int create(int);

void linearprobe(int[], int, int);

void Display(int []);

//main function

int main()

int a[MAX], num, key,i;

int ans=1;

printf(" Collision Handling by linear probing\n\n");

for(i=0;i<MAX;i++)

a[i]=-1;

do

printf("Enter the Employee ID\n");

scanf("%4d", &num);

key= create(num);

linearprobe(a,key,num);

printf(" Do you wish to continue adding one more employee id?(1/0)\n");


scanf("%d", &ans);

while(ans);

Display(a);

return 0;

//Create hash table function definition

int create(int num)

int key;

key=num%100;

return key;

//linearprobing function definition

void linearprobe(int a[MAX], int key, int num)

int flag=0, i, count=0;

if(a[key]==-1)

a[key]=num;

else

printf("Collision Detected!\n");

for(i=0;i<MAX;i++)

if(a[i]!=-1)

count++;

printf("Collision avoided successfully using LINEAR PROBING\n");


if(count==MAX)

printf("Hash table is full\n");

Display(a);

exit(1);

for(i=key+1;i<MAX;i++)

if(a[i]==-1)

a[i]=num;

flag=1;

break;

for(i=0;i<key && flag==0;i++)

if(a[i]==-1)

a[i]=num;

flag=1;

break;

//Display hash table function definition

void Display(int a[MAX])

int i, choice;

printf("\n1.Display All \n2. Filtered Display\n");


scanf("%d", &choice);

if(choice==1)

printf("Complete Hash Table is\n");

for(i=0;i<MAX;i++)

printf("\n%d\t%d",i,a[i]);

else

printf("Filtered Hash Table is\n");

for(i=0;i<MAX;i++)

if(a[i]!=-1)

printf("\n%d\t%d\n",i,a[i]);

continue;

/*

Collision Handling by linear probing

Enter the Employee ID

101

Do you wish to continue adding one more employee id?(1/0)

Enter the Employee ID


201

Collision Detected!

Collision avoided successfully using LINEAR PROBING

Do you wish to continue adding one more employee id?(1/0)

Enter the Employee ID

500

Do you wish to continue adding one more employee id?(1/0)

Enter the Employee ID

406

Do you wish to continue adding one more employee id?(1/0)

Enter the Employee ID

303

Do you wish to continue adding one more employee id?(1/0)

Enter the Employee ID

403

Collision Detected!

Collision avoided successfully using LINEAR PROBING

Do you wish to continue adding one more employee id?(1/0)

Enter the Employee ID

404

Collision Detected!

Collision avoided successfully using LINEAR PROBING

Do you wish to continue adding one more employee id?(1/0)

1
Enter the Employee ID

505

Collision Detected!

Collision avoided successfully using LINEAR PROBING

Do you wish to continue adding one more employee id?(1/0)

1.Display All

2.Filtered Display

Filtered Hash Table is

0 500

1 101

2 201

3 303

4 403

5 404

6 406

7 505
OUTPUT 2:

Collision Handling by linear probing

Enter the Employee ID

999

Do you wish to continue adding one more employee id?(1/0)

Enter the Employee ID

555

Do you wish to continue adding one more employee id?(1/0)

Enter the Employee ID

400

Do you wish to continue adding one more employee id?(1/0)

Enter the Employee ID

500

Collision Detected!

Collision avoided successfully using LINEAR PROBING

Do you wish to continue adding one more employee id?(1/0)

Enter the Employee ID

203

Do you wish to continue adding one more employee id?(1/0)

Enter the Employee ID

303
Collision Detected!

Collision avoided successfully using LINEAR PROBING

Do you wish to continue adding one more employee id?(1/0)

Enter the Employee ID

404

Collision Detected!

Collision avoided successfully using LINEAR PROBING

Do you wish to continue adding one more employee id?(1/0)

1.Display All

2. Filtered Display

Complete Hash Table is

0 400

1 500

2 -1

3 203

4 303

5 404

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 -1

32 -1

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 555

56 -1

57 -1

58 -1

59 -1

60 -1

61 -1

62 -1

63 -1

64 -1

65 -1

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 999

*/

You might also like