离散数学的一道作业题目,求集合的幂集。
代码如下(摘自网络,自己修改)
int i,j,k,t,y,sum; int a[8]=0; // 二进制数组有点投机取巧 SetElem *pAElem; SetElem *pBElem; pAElem = outToBuffer(pA);//pA输出缓存区 pFamilyOfSet pFamSet; pFamSet = createNullFamilyOfSet();//创建空集族 for(i=0,pBElem=pAElem;*pBElem != '\n';++pBElem) //元素个数 i++; for(j=i,sum=1;j>0;j--) //幂集总数 sum=sum*2; for(k=1;k<=sum;k++) { pSet pC = createNullSet(); //创建子集pC for(j=0;j<i;j++) { if(a[j]!=0) { pBElem=pAElem; for(y=0;y<j;y++)//添加对应的元素 pBElem++; directInsertSetElem(pC,*pBElem);//插入元素 } } insertToFamilyOfSet(pFamSet,pC);//插入子集 for(t=i-1;t>=0;t--) { if(a[t]==0) { a[t]=1; break; } else a[t]=0; } } return pFamSet;
转载于:https://www.cnblogs.com/ss815367696/archive/2012/12/23/2830316.html
相关资源:JAVA上百实例源码以及开源项目