Write a recursive C++ program that will output all the subsets of a set of n elements (without repeating any subsets).

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Write a recursive C++ program that will output all the subsets of a set of n elements (without repeating any subsets).

Expert Solution
Step 1

Code:

 

#include<iostream>//header files
#include<vector>

#include<cmath>

#include<algorithm>

#include<climits>

#include<string>

#include<queue>

#include<stack>

#include<set>

using namespace std;

set<string> st;

void fun(int n, int const m, vector<string> &vec, string s){//function definition

if(n>=m){//if the size of the elements greater than m

s = s.substr(0,s.length()-1);//then s is substring of length - 1

if(st.find(s) == st.end()){//if you find s in substring then insert s

st.insert(s);

}

return;

}

fun(n+1,m,vec,s);//calling the function

fun(n+1,m,vec,s + vec[n] + " ");//calling the function

}

vector<string> vec;//defining vector

int main()

{

int t=0;

vec.clear(); st.clear();//clearing vector

int n=0;

cout<<"Enter size of the elements :";

cin >> n;

string s="";

cout<<"Enter elements of the set :";

for(int i=0;i<n;i++){

cin >> s;

vec.push_back(s);

}

cout<<"\nTotal subsets are:";

sort(vec.begin(), vec.end());//sorting vector

fun(0,n,vec,"");//calling the function

while(!st.empty()){//condition checing whether st is empty 

cout << '(' << *st.begin() << ')';

st.erase(st.begin());

}

cout << endl;

return 0;

}

 

Code Screenshot:

Computer Science homework question answer, step 1, image 1

Computer Science homework question answer, step 1, image 2

trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps with 3 images

Blurred answer
Knowledge Booster
Randomized Select Algorithm
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education