#include <iostream>
#include <string>
using namespace std;
void ListSubsets(string s);
void RecursiveSubsets(string prefix, string left);
int main()
{
cout << "This program lists all subsets of a set." << endl
<< "Enter a string representing a set: ";
string s;
cin >> s;
ListSubsets(s);
return 0;
}
void ListSubsets(string s) {
RecursiveSubsets("", s);
}
void RecursiveSubsets(string prefix, string left)
{
// simple case
if (left.empty()) {
cout << '{' << prefix << '}' << endl;
return;
}
// recursive decomposition
RecursiveSubsets(prefix+left[0], left.substr(1));
RecursiveSubsets(prefix, left.substr(1));
}
generate powerset(using recursion)
最新推荐文章于 2021-11-14 18:04:05 发布