永发信息网

如何用C语言实现集合合并 ,题目具体要求如下:

答案:2  悬赏:0  手机版
解决时间 2021-02-02 18:11
  • 提问者网友:容嬷嬷拿针来
  • 2021-02-01 20:25
Input

总共有两行,第一行为集合A的数据,第二行为集合B的数据。每行先输入一个数字N,为该行数据的个数,后面跟随N个数字。

Output

输出合并后的集合的数据,中间用空格分隔。(集合B的数据如果不在集合A中,则插入在集合A的最后)。

Sample Input

3 1 2 3
3 4 5 6
Sample Output

1 2 3 4 5 6
最佳答案
  • 五星知识达人网友:詩光轨車
  • 2021-02-01 20:54
ACM?

写了一个简单的给你。
编译通过了,功能实现了,不过性能嘛。。。

#include
#include
int contains(int a[],int length,int value) {
int i;
for(i=0;i if(a[i]==value) return length;
}
a[length]=value;
return ++length;
}
main() {
int n,m;
int a[1000],b[1000];
int i,length;
while(scanf("%d",&n)!=EOF) {
length=n;
for(i=0;i scanf("%d",a+i);

scanf("%d",&m);
for(i=0;i scanf("%d",b+i);
length=contains(a,length,b[i]);
}
for(i=0;i printf("%d ",a[i]);
}
}
//system("pause");
}
全部回答
  • 1楼网友:封刀令
  • 2021-02-01 21:20
void union(linklist *l1,linklist *l2,linklist *&l3)//交集 { linklist *p=l1->next,*q=l2->next,*s,*c; l3=(linklist *)malloc(sizeof(linklist)); l3->next=null; c=l3; while(p!=null&&q!=null) { if(p->datadata) { s=(linklist *)malloc(sizeof(linklist));//复制结点 s->data=p->data; c->next=s;c=s; p=p->next; } else if(p->data>q->data) { s=(linklist *)malloc(sizeof(linklist)); s->data=q->data; c->next=s;c=s; q=q->next; } else { s=(linklist *)malloc(sizeof(linklist)); s->data=p->data; c->next=s;c=s; p=p->next; q=q->next; } } while(q!=null) { s=(linklist *)malloc(sizeof(linklist)); s->data=q->data; c->next=s;c=s; q=q->next; } c->next=null; while(p!=null) { s=(linklist *)malloc(sizeof(linklist)); s->data=p->data; c->next=s;c=s; p=p->next; } c->next=null; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯