求幂集(回溯)

 

/*
{1, 2, 3}的幂集为:

 {1, 2, 3}  {1, 2}  {1, 3}  {2, 3}  {1}  {2}  {3}  Φ

*/

#include 
< vector >
#include 
< stdlib.h >
#include 
< iostream >
using   namespace  std;

void  get_powerset( int  i, vector < int >  A,vector < int >&  B)
{
    
int x;
    
if (i>A.size()-1)
    
{
        
if (!B.empty())
        
{
            cout
<<""
            
for (vector<int>::iterator it=B.begin();it!=B.end();it++)
            
{
                
if (it!=B.end()-1) cout<<*it<<"";
                
else cout<<*it<<" ";
            }

            cout
<<"}"<<endl;
        }

        
else cout<<"Φ"<<endl;
    }

    
else
    
{
        x
=A[i];
        B.push_back(x);get_powerset(i
+1,A,B);
        B.pop_back();get_powerset(i
+1,A,B);
    }

}


int  main()
{
    
int a[]={1,2,3};
    vector
<int> ivec1(a,a+3);
    vector
<int> ivec2;
    
    get_powerset(
0,ivec1,ivec2);
    system(
"pause");
}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值