输入格式
第一行表示总的测试次数
每次测试由两行数据组成,每行含有若干个数据,以表示一个集合中的
元素值。
输出格式
每次结果输出为一行,即合并后元素个数
输入输出格式样例:
输入
2
10 10 20 30 40 50 60 70 80 90 100
5 100 200 10 50 80
8 80 70 50 60 40 30 5 10
4 30 100 70
输出
11
9要求用链表#include<iostream.h>
struct Data
{
int data;
struct Data *next;
};
void main()
{
int m,n,i,j,t1,t2,num,z,*sum,z2;
struct Data *head,*p,*tail;
struct Data *head2,*p2,*tail2;
cin>>num;                                  //输入测试次数
sum=new int[num];                        //存储集合合并后元素个数
for(z=0;z<num;z++)               
{
int t3=0;cin>>m; //输入数据
head=tail=new Data;for(i=0;i<m;i++)
{
p=new Data;
cin>>p->data ;
p->next =0;
tail->next =p;
tail=p;
}
p=head->next ;
cin>>n;
head2=tail2=new Data;
for(j=0;j<n;j++)
{
p2=new Data;
cin>>p2->data ;
p2->next =0;
tail2->next =p2;
tail2=p2;
}p2=head2->next ;
for(t1=0;t1<m;t1++)                               //集合判断重复元素
{
int flag=1;
for(t2=0;t2<n;t2++)
{
if(p->data ==p2->data )
{
flag=0;
break;
}
p2=p2->next ;
}if(flag==1)
{
t3++;                               //记录集合1中与集合2中元素不相同的元素个数
}
p=p->next ;
}sum[z]=n+t3;
}             //z->for
for(z2=0;z2<num;z2++)
{
cout<<sum[z2]<<endl;
}
}
数据输入后就显示应用程序错误~~求解答~~~