中易网

递归输出集合子集

答案:2  悬赏:20  
解决时间 2021-11-17 01:52
必须用递归 不要贴代码 具体说一下思路 不写代码也可以
最佳答案
思路: 对于某个集合元素 e 和某个子集subset, e要不就在这个集合中,要不就不在。 故,只需枚举所有元素的在或不在某子集, 即可枚举所有子集。

不标准伪代码: 不妨设集合元素为 e[0] 到 e[n-1] 共n个, 用数组 flag[0] 到 flag[n-1] 代表i元素是否在当前集合

void Output( i )
{
if ( i == 集合元素个数n)
{
根据flag数组输出当前集合(在或不在);
return;
}
flag[i] = 在当前集合;
Output(i + 1);
flag[i] = 不在当前集合;
Output(i + 1);
}

初始化时 flag[0] 到flag[n-1]都为 ‘不在当前集合’;
初始调用 Output(0);
全部回答
int i=0; fun(集合) { if(集合.length>0) { cout<<集合[i]; 集合=集合.remove(集合[i++]); fun(集合); } } ps:干吗用递归啊,循环不是更简单明了?
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
安徽大学新区附近宾馆
笔记本键盘坏掉了,怎么修理?
您好,想咨询下从英国空运奶粉回中国如果找DH
崇明区气象局地址在哪,我要去那里办事
机器人和机械人有什么区别?
建设银行电话银行怎么开通
合肥三里街附近浴池?
美的品牌生活态度是什么?
中国华东区域气象局办公地址在什么地方,我要
谁知道饮水机渗水是什么原因?
鼻孔外露
飞利浦豆浆机故障维修方法是什么?
监控系统工程报价表
讨教下华为手机c8826d怎么截图?
真心瓜子孕妇可以吃吗?
推荐资讯
没有本科文凭可以报考注册会计师吗?
XIUMIN LUHAN KRIS LAY CHEN TAO SU HO BAEK
脉沉细无力 什么意思
广州宝贤华瀚建筑工程设计有限公司怎么样?包
窦速110,胸闷心慌感觉气不够用怎么回
请问广州珠宝批发市场在哪里?
海信50k260x3d平板电视报价是多少?
想给孩子买一份教育金保险,不知道哪一种保险
有谁知道”心有所系,魂有所牵,寂寞染不上我
德堡·摄影地址有知道的么?有点事想过去
哪位清楚韩国什么电饭煲好
走香港到德州物流货运专线,香港到德州物流公
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?