系列文章目录
前言
《数据结构基础》c语言版 第2版,Ellis Horowitz著,朱仲涛译
1.3节,page14,习题12
一、题目描述
令S是n个元素的集合,它的幂集是它所有子集的集合。例如,如果S={a,b,c},那么powerset{S}={{},{a},{b},{c},{a,b},{a,c},{b,c},{a,b,c}}。写出递归函数实现powerset{S}
二、c++代码
1.引入库
代码如下:
#include <iostream>
using namespace std;
void powerset(char *array,int a[],int index,int n)
{
if(index==n)
{
printf("{");
for(int i=0;i<n;i++)
{
if(a[i])
printf("%c ",array[i]);
}
printf("},");
} else
{
a[index]=0;
powerset(array,a,index+1,n);
a[index]=1;
powerset(array,a,index+1,n);
}
}
int main()
{
char arr[3]={'a','b','c'};
int aa[3];
printf("{");
powerset(arr,aa,0,sizeof(arr));
printf("}");
return 0;
}