DSTL Programs
Contents
Program 1: Union .......................................................................................................................................... 2
Program 2 : Intersection ............................................................................................................................... 4
Program 3: Set Difference............................................................................................................................. 6
Program 4: Symmetric Difference ............................................................................................................... 8
DSTL Programs Written By Ayush Saini Page 1
Program 1: Union
#include<stdio.h>
void initArray(int *p, int n);
int unionOfArray(int *, int *, int *, int, int);
void display(int *, int);
int main()
{
int n, n1, n2;
printf("Enter Number of Elements in 1st Array : ");
scanf("%d", &n1);
int a1[n1];
initArray(a1, n1);
printf("Enter Number of Elements in 2nd Array : ");
scanf("%d", &n2);
int a2[n2];
int result[n1+n2];
initArray(a2, n2);
n = unionOfArray(a1, a2, result, n1, n2);
display(a1, n1);
display(a2, n2);
display(result, n);
return 0;
}
void initArray(int *p, int n)
{
puts("Enter Elements of Array :-");
for (int i = 0; i < n; i++)
{
printf("Enter %d Element : ", i+1);
scanf("%d", p+i);
}
puts("");
}
int unionOfArray(int *a1, int *a2, int *r, int n1, int n2)
{
int j, n = 0;
for (int i = 0; i < n1; i++)
{
DSTL Programs Written By Ayush Saini Page 2
*(r+n++) = *(a1+i);
}
for (int i = 0; i < n2; i++)
{
for (j = 0; j < n1; j++)
{
if (*(a2+i) == *(a1+j))
{
break;
}
}
if (j == n1)
{
*(r+n++) = *(a2+i);
}
}
return n;
}
void display(int *p, int n)
{
printf("\nElements of Array : ");
for (int i = 0; i < n; i++)
{
printf("%d ", *(p+i));
}
puts("\n");
}
DSTL Programs Written By Ayush Saini Page 3
Program 2 : Intersection
#include<stdio.h>
void initArray(int *, int);
void display(int *, int);
int intersection(int *, int *, int *, int, int);
int main()
{
int n1, n2, n;
printf("Enter Number of Elements in Set 1 :");
scanf("%d", &n1);
int set1[n1];
initArray(set1, n1);
printf("Enter Number of Elements in Set 2 :");
scanf("%d", &n2);
int set2[n2];
initArray(set2, n2);
int common[n1<n2?n1:n2];
n = intersection(set1, set2, common, n1, n2);
display(set1, n1);
display(set2, n2);
display(common, n);
return 0;
}
void initArray(int *p, int n)
{
puts("Enter Elements of Array :-");
for (int i = 0; i < n; i++)
{
printf("Enter %d Element : ", i+1);
scanf("%d", p+i);
}
puts("");
}
void display(int *p, int n)
{
printf("Array : ");
for (int i = 0; i < n; i++)
{
printf("%d ", *(p+i));
}
puts("");
DSTL Programs Written By Ayush Saini Page 4
}
int intersection(int *a1, int *a2, int *r, int n1, int n2)
{
int j, n = 0;
for (int i = 0; i < n1; i++)
{
for (int j = 0; j < n2; j++)
{
if (*(a1+i) == *(a2+j))
{
*(r+n++) = *(a1+i);
}
}
}
return n;
}
DSTL Programs Written By Ayush Saini Page 5
Program 3: Set Difference
#include<stdio.h>
void display(int *, int);
void initArray(int *p, int n);
int difference(int *, int *, int *, int, int);
int main()
{
int n, n1, n2;
printf("Enter Number of Elements in 1st Array : ");
scanf("%d", &n1);
int a1[n1];
initArray(a1, n1);
printf("Enter Number of Elements in 2nd Array : ");
scanf("%d", &n2);
int a2[n2];
int result[n1+n2];
initArray(a2, n2);
n = difference(a1, a2, result, n1, n2);
display(a1, n1);
display(a2, n2);
display(result, n);
return 0;
}
void display(int *p, int n)
{
printf("Array : ");
for (int i = 0; i < n; i++)
{
printf("%d ", *(p+i));
}
puts("");
}
void initArray(int *p, int n)
{
puts("Enter Elements of Array :-");
for (int i = 0; i < n; i++)
{
printf("Enter %d Element : ", i+1);
scanf("%d", p+i);
}
DSTL Programs Written By Ayush Saini Page 6
puts("");
}
int difference(int *a1, int *a2, int *r, int n1, int n2)
{
int n = 0, j;
for (int i = 0; i < n1; i++)
{
for (j = 0; j < n2; j++)
{
if (*(a1+i) == *(a2+j))
{
break;
}
}
if (j == n2)
{
*(r+n++) = *(a1+i);
}
}
return n;
}
DSTL Programs Written By Ayush Saini Page 7
Program 4: Symmetric Difference
#include<stdio.h>
void initArray(int *p, int n);
int unionOfArray(int *, int *, int *, int, int);
void display(int *, int);
int intersection(int *, int *, int *, int, int);
int difference(int *, int *, int *, int, int);
int main()
{
int n, n1, n2, n3;
printf("Enter Number of Elements in Set 1 : ");
scanf("%d", &n1);
int set1[n1];
initArray(set1, n1);
printf("Enter Number of Elements in Set 2 : ");
scanf("%d", &n2);
int set2[n2];
initArray(set2, n2);
int Union[n1+n2];
n = unionOfArray(set1, set2, Union, n1, n2);
int result[n-n1];
int inter[n1>n2?n2:n1];
n3 = intersection(set1, set2, inter, n1, n2);
n = difference(Union, inter, result, n, n3);
display(result, n);
return 0;
}
int unionOfArray(int *a1, int *a2, int *r, int n1, int n2)
{
int j, n = 0;
for (int i = 0; i < n1; i++)
{
*(r+n++) = *(a1+i);
}
for (int i = 0; i < n2; i++)
{
for (j = 0; j < n1; j++)
{
if (*(a2+i) == *(a1+j))
{
break;
}
DSTL Programs Written By Ayush Saini Page 8
}
if (j == n1)
{
*(r+n++) = *(a2+i);
}
}
return n;
}
void initArray(int *p, int n)
{
puts("Enter Elements of Array :-");
for (int i = 0; i < n; i++)
{
printf("Enter %d Element : ", i+1);
scanf("%d", p+i);
}
puts("");
}
void display(int *p, int n)
{
printf("\nElements of Array : ");
for (int i = 0; i < n; i++)
{
printf("%d ", *(p+i));
}
puts("\n");
}
int intersection(int *a1, int *a2, int *r, int n1, int n2)
{
int j, n = 0;
for (int i = 0; i < n1; i++)
{
for (int j = 0; j < n2; j++)
{
if (*(a1+i) == *(a2+j))
{
*(r+n++) = *(a1+i);
}
}
DSTL Programs Written By Ayush Saini Page 9
return n;
}
int difference(int *a1, int *a2, int *r, int n1, int n2)
{
int n = 0, j;
for (int i = 0; i < n1; i++)
{
for (j = 0; j < n2; j++)
{
if (*(a1+i) == *(a2+j))
{
break;
}
}
if (j == n2)
{
*(r+n++) = *(a1+i);
}
}
return n;
}
DSTL Programs Written By Ayush Saini Page 10