Solution: iterative approach is not difficult. Here give a recursive approach:
void _print(const vector<int>& set)
{
i; i<< set[i] << " ";
cout << endl;
}
void print_set(const vector <int>&set, int i, vector<int>& output)
{
if(i >= set.size()) _print(output);
else {
output.push_back(set[i]);
print_set(set, i+1, output);
// code to handle duplicates
int tmp = output.back();
output.pop_back();
if(output.size()>0 && tmp== output.back()) return;
print_set(set, i+1, output);
}
}
int main()
{
vector<int> set,output;
set.push_back(1);
set.push_back(2);
set.push_back(3);
set.push_back(4);
print_set(set, 0, output);
}
No comments:
Post a Comment