《数据结构》严蔚敏 算法6.14
// exam1.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
void print_set(vector<char> s,int num)
{
cout<<"Subset Num"<<num<<": ";
vector<char>::iterator it=s.begin();
while(it!=s.end())
{
cout<<*it<<" ";
it++;
}
cout<<endl<<endl;
}
void power_of_set(vector<char> A,vector<char> B,int n)
{
static int num=0;
if(n==A.size())
{
num++;
print_set(B,num);
return;
}
B.push_back(A[n]);
power_of_set(A,B,n+1);
B.erase(B.end()-1);
power_of_set(A,B,n+1);
return;
}
int main(void)
{
char ch[3]={'a','b','c'};
vector<char> A(ch,ch+3);
vector<char> B;
power_of_set(A,B,0);
system("pause");
return 0;
}