免费注册 查看新帖 |

Chinaunix

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

请教:集合分类问题(即把所有集合分成各个包含链) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-19 11:45 |只看该作者 |倒序浏览
问题是:现在有不定的几个集合.
eg:  a[]={1,3,4,5,6,7,8};
b[]={2,3,5};c[]={2,5,6};
d[]={3,6,8};
e[]={1,2,3,4,5};
f[]={4,8};
g[]={4,8};
h[]={1,9}   
最终用c语言程序实现把他们分成三种情况:
(1)相等的列出:  f[]=g[]//即这两个集合是相等的.
(2)包含的情况:  a[]>e[]>b[];  a[]>c[]; a[]>d[]; a[]>f[];//这里会出现几个包含链
(3)不包含的情况: h[]
希望大哥大姐们给个答案!谢谢哈

论坛徽章:
0
2 [报告]
发表于 2006-10-22 11:35 |只看该作者
咋没人理俺呢.救命呀,请大哥大姐们给个答案嘛.谢了先!

论坛徽章:
0
3 [报告]
发表于 2006-10-22 12:51 |只看该作者
是集合不是排列,晕,那这个题就难喽~!
至少我不会~!

论坛徽章:
0
4 [报告]
发表于 2006-10-22 13:26 |只看该作者
确实有挑战性。不过我现在一点思路也没有。

论坛徽章:
0
5 [报告]
发表于 2006-10-22 16:42 |只看该作者
不过还是很感谢各位达人过来帮小弟看看这道题.期待解答之人!

论坛徽章:
0
6 [报告]
发表于 2006-10-23 13:50 |只看该作者
最笨的方法就是循环比较吧!
1.来个大循环,把所有的数组依次循环一遍,就是把数组和他后面的数组比较!
2.相等的情况:在第二个数组中找出和第一个数组相等的.用变量记录相等的次数,不过循环时要注意避免出现一个数组中有相同元素的可能.循环完成后比较变量和两个数组中元素个数,如果三个数值相等,那就可以确定两个数组是相等的.
3.模仿2,循环后,比较记录变量和元素少的那个数组的元素个数,如果相等,表示包含关系(当然和元素多的那个不等,要不然就是数组相等了)!
4.不符合2和3的就是不包含的情况了!


如果让我作,我只能想到以上方法了,不知道可行不??
高手指点一下!
谢谢!!

论坛徽章:
0
7 [报告]
发表于 2006-10-23 15:44 |只看该作者
思路:
如果 A 包含 B,必然 size(A) > size(B)
如果 A 等于 B,必然 size(A) = size(B)

所以首先判断两个集合元素的数量关系,再判断他们之间的包含关系

论坛徽章:
0
8 [报告]
发表于 2006-10-23 16:04 |只看该作者
可以参考
The C++ Programming Language(Special Edition)
18.7.5 序列上的集合运算

具体代码参C++标准库<map>、<set>和<algorithm>的include()算法。

[ 本帖最后由 westgarden 于 2006-10-23 18:44 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2006-10-23 16:24 |只看该作者
先把集合按序排列   
1 再计算各集合长度 相同的分为一组
 在长度相同的组里 只需要按次比较相同下标的数即可
 相同的归为一组

2 把组按序列排队 提取长度最小的一组数据
   依次去和长度大于该组的集合比较 即可产生包含关系

3 把1中集合排除 2中参加比较的排除 即可产生非包含关系

不知道这样可不可以!

论坛徽章:
0
10 [报告]
发表于 2006-10-23 16:30 |只看该作者
原帖由 westgarden 于 2006-10-23 16:04 发表
可以参考
The C++ Programming Language(Special Edition)
18.7.5 序列上的集合运算

具体代码参C++标准库<map>和<algorithm>的include()算法。

集合应该是<set>吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP