免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 14795 | 回复: 17
打印 上一主题 下一主题

求一个集合的所有子集 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-09-16 10:59 |只看该作者 |倒序浏览
算法求解:
求一个集合的所有子集。
如{1,2}的子集有{1},{2},{1,2}
{1,2,3}的子集有{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}

论坛徽章:
0
2 [报告]
发表于 2005-09-16 11:26 |只看该作者

求一个集合的所有子集

P("abc" = 'a'&("bc" + ''&("bc"
一个递回

论坛徽章:
0
3 [报告]
发表于 2005-09-16 11:54 |只看该作者

求一个集合的所有子集

这是一种很好的思路,但转化为算法还是有一点难度的,哪位能用语言表达出来呢?

论坛徽章:
0
4 [报告]
发表于 2005-09-16 12:28 |只看该作者

求一个集合的所有子集

打印字符串的所有子串
char set[4] = {'a', 'b', 'c', 'd'};
unsigned int i = 0;
char temp[5];

void printsubset(int member)
{
        if(member >; 3){
                printf("%s\n", temp);
                return;
        }
        temp[i++] = set[member];
        printsubset( member+1 );
        temp[--i] = '\0';
        printsubset( member+1 );
}

论坛徽章:
0
5 [报告]
发表于 2005-09-16 12:45 |只看该作者

求一个集合的所有子集

楼上兄台:建模时将数据存入一个数组确实是一个不错的方法,但是这样能输出所有子集吗?怀疑。。。

论坛徽章:
0
6 [报告]
发表于 2005-09-16 13:11 |只看该作者

求一个集合的所有子集

要不你试试看?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
7 [报告]
发表于 2005-09-16 13:18 |只看该作者

求一个集合的所有子集

javacool的代码应该是不对.

论坛徽章:
0
8 [报告]
发表于 2005-09-16 13:28 |只看该作者

求一个集合的所有子集

呵呵 大家用代码似试就知道了
PS: 函数起始是printsubset(0) 我这个版本有点简化
如果起始是printsubset(number)的话
char set[5] = {0, 'a', 'b', 'c', 'd'};
unsigned int i = 0;
char temp[5];

void printsubset(int member)
{
        if(member < 1){
                printf("%s\n", temp);
                return;
        }
        temp[i++] = set[member];
        printsubset( member-1 );
        temp[--i] = '\0';
        printsubset( member-1 );
}就行了 道理时一样的

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
9 [报告]
发表于 2005-09-16 13:31 |只看该作者

求一个集合的所有子集

呵呵 你确定你的代码能行吗?

论坛徽章:
0
10 [报告]
发表于 2005-09-16 13:32 |只看该作者

求一个集合的所有子集

嘿嘿 我对自己的代码一向有信心
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP