求助:求两个集合的交集。用C语言写。

Chiangcee 2010-12-13 07:17:27
如题,老师要求集合由老师随便输入
...全文
1555 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
漫步者、 2010-12-14
  • 打赏
  • 举报
回复
用二叉树做!!!
将森林转换成二叉树存储就可以了!
elated 2010-12-13
  • 打赏
  • 举报
回复
stl中的集合运算:
set_intersection 交集
set_union 并集
set_difference 差集
set_symeetric_difference 对称差集
loneySummer 2010-12-13
  • 打赏
  • 举报
回复
先使集合有序,应该能使复杂度降到O(n*logn)吧
Chiangcee 2010-12-13
  • 打赏
  • 举报
回复

#include<stdio.h>
#include<string.h>
void main()
{int i,j,n=0,m,k=0;
char str1[100],str2[100],str3[100];
printf("please input two strings:\n");
gets(str1);
gets(str2);
for(i=0;i<strlen(str1);i++)
for(j=0;j<strlen(str2);j++)
if(str1[i]==str2[j])
{str3[n++]=str1[i];k++;}
for(n=0;n<k;n++)
for(m=n+1;m<k;m++)
if(str3[n]==str3[m]) str3[n]=0;
for(n=0;n<k;n++)
if(str3[n])
printf(" %c",str3[n]);
}

大家看看这个怎么样。我看了感觉是可以的。
Chiangcee 2010-12-13
  • 打赏
  • 举报
回复
当然,集合中不套有集合。类型就用浮点型就OK了。
flysnowhite 2010-12-13
  • 打赏
  • 举报
回复
还真不好做。因为这里集合里的元素类型没有定义。若按照集合的概念,集合里的元素还可以是一个集合,则定义集合的类型就成问题。如果明确了集合里的元素类型,比如整型,则首先去除各集合内部的重复元素,然后利用二重循环,一个集合里的元素依次和另一个集合元素进行比较即可。
無_1024 2010-12-13
  • 打赏
  • 举报
回复

#include<stdio.h>
#include<conio.h>
#include<string.h>
#define M 50
#define N 5
void jiaoji(char a[N][M],char b[N][M],char c[N][M])
{
int i,j,k=0,m=0;
int ch[2*N][M];
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(a[i]==b[j])
c[k++]=a[i];
for(i=0;i<k;i++)
printf("%s",ch[i]);
printf("\n");
printf("输入集合元素数\n");
printf("%d\n",k);
}

void bingji(char a[M],char b[M],char d[M])
{
int i=0,j=0,k=0,m=0;
char ch[M];
while(i<strlen(a))
{
j=0;
while(j<strlen(b))
{ if(a[i]!=b[j])
{
j++;
if(j==strlen(b))
d[k++]=a[i];
}
else
break;
}
i++;
}
for(j=0;j<=strlen(b);j++)
{
d[k]=b[j];
k++;
}
for(i=0;i<strlen(d);i++)
{
if(d[i]!=' ')
ch[m++]=d[i];
}
printf("并集集合为:\n");
for(i=0;i<m;i++)
printf("%c",ch[i]);
printf("\n");
printf("输入集合元素数\n");
printf("%d\n",m);
}
main()
{
char x[M],y[M],c[M],d[M],e[M],f[M];
printf("please enter x: \n");
gets(x);
printf("please enter y:\n");
gets(y);
printf("交集:\n");
jiaoji(x,y,c);
printf("并集:\n");
bingji(x,y,d);

getch();
}

69,364

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧