Wednesday 22 November 2017

C++ Program to Generate All Pairs of Subsets Whose Union Make the Set


Code:

#include  iostream
#include  math.h
#include  iomanip

using namespace std;

// A function to print array element according to the code in the argument list.
void print(char code[], int arr[], int n)
{
int i;
cout<<"\t{ ";
for(i = 0; i < n; i++)
{
// Print if the corresponding value is 1.
if(code[i] == '1')
cout<
}
cout<<"}";
cout<<"        { ";
for(i = 0; i < n; i++)
{
// Print if the corresponding value is 0.
// It will print the remaining elements which on union forms the superset.
if(code[i] == '0')
cout<
}
cout<<"}\n";
}

void GenUnionSet(int arr[], int n)
{
int i, r, l;
char binary[n];
r = pow(2, n-1);

for(i = 0; i < n; i++)binary[i] = '0';

for(i = 0; i < r; i++)
{
print(binary, arr, n);
l=n-1;

// Incrementing the binary value with each iteration.
h:
if(binary[l] == '0')
binary[l] = '1';
else
{
binary[l] = '0';
l--;
goto h;
}
}
}

int main()
{
int i, n;
cout<<"\nEnter the number of element array have: ";
cin>>n;

int arr[n];
cout<<"\n";

// Take the input of the array.
for(i = 0; i < n; i++)
{
cout<<"Enter "<
cin>>arr[i];
}

// Print the subset using binary counting method.
cout<<"\nThe possible subset pairs which on union generates the superset, are: \n";
GenUnionSet(arr, n);

return 0;
}


Output:

Case 1:
Enter the number of element array have: 5

Enter 1 element: 1
Enter 2 element: 2
Enter 3 element: 3
Enter 4 element: 4
Enter 5 element: 5

The possible subset pairs which on union generates the superset, are:
        { }        { 1 2 3 4 5 }
        { 5 }        { 1 2 3 4 }
        { 4 }        { 1 2 3 5 }
        { 4 5 }        { 1 2 3 }
        { 3 }        { 1 2 4 5 }
        { 3 5 }        { 1 2 4 }
        { 3 4 }        { 1 2 5 }
        { 3 4 5 }        { 1 2 }
        { 2 }        { 1 3 4 5 }
        { 2 5 }        { 1 3 4 }
        { 2 4 }        { 1 3 5 }
        { 2 4 5 }        { 1 3 }
        { 2 3 }        { 1 4 5 }
        { 2 3 5 }        { 1 4 }
        { 2 3 4 }        { 1 5 }
        { 2 3 4 5 }        { 1 }
Case 2:
Enter the number of element array have: 4

Enter 1 element: 1
Enter 2 element: 2
Enter 3 element: 3
Enter 4 element: 4

The possible subset pairs which on union generates the superset, are:
        { }        { 1 2 3 4 }
        { 4 }        { 1 2 3 }
        { 3 }        { 1 2 4 }
        { 3 4 }        { 1 2 }
        { 2 }        { 1 3 4 }
        { 2 4 }        { 1 3 }
        { 2 3 }        { 1 4 }
        { 2 3 4 }        { 1 }




More C Programs:














100+ Best Home Decoration Ideas For Christmas Day 2019 To Make Home Beautiful

Best gifts for Christmas Day | Greeting cards for Christmas Day | Gift your children a new gift on Christmas day This Christmas d...