typedef struct
{ int data[MaxSize];
int length;
}Set;
void cset(Set &s,int a[],int n)
{ for(int i=0;i<n;i++)
s.data[i]=a[i];
s.length=n;
}
void dispset(Set s)
{ for(int i=0;i<s.length;i++)
printf("%d",s.data[i]);
printf("\n");
}
int inset(Set s,int e)
{ for(int i=0;i<s.length;i++)
if(s.data[i]==e)
return 1;
return 0;
}
void add(Set s1,Set s2,Set &s3)
{ int i;
for(i=0;i<s1.length;i++)
s3.data[i]=s1.data[i];
s3.length=s1.length;
for(i=0;i<s2.length;i++)
if(!inset(s1,s2.data[i]))
{ s3.data[s.length]=s2.data[i];
s3.length++;
}
}
void sub(Set s1,Set s2,Set &s3)
{ s3.length=0;
for(i=0;i<s1.length++;i++)
if(!inset(s2,s1.data[i]))
{ s3.data[s3.length]=s1.data[i];
s3.length++;
}
}
void intersection(Set s1,Set s2,Set &s3)
{ s3.length=0;
for(i=0;i<s1.length++;i++)
if(inset(s2,s1.data[i]))
{ s3.data[s3.length]=s1.data[i];
s3.length++;
}
}
void main()
{ int a[]={1,9,0,2,3,4};
int b[]={9,3,4};
Set s1,s2,s3;
cset(s1,a,5);
cset(s2,b,4);
printf("集合s1:");dispset(s1);
printf("集合s2:");dispset(s2);
add(s1,s2,s3);
printf("集合s1和s2的并集:");dispset(s3);
sub(s1,s2,s3);
printf("集合s1和s2的差集:");dispset(s3);
intersection(s1,s2,s3);
printf("集合s1和s2的交集:");dispset(s3);
}
F:\c++\数据结构.cpp(2) : error C2065: 'MaxSize' : undeclared identifier
F:\c++\数据结构.cpp(2) : error C2057: expected constant expression
F:\c++\数据结构.cpp(2) : warning C4200: nonstandard extension used : zero-sized array in struct/union
F:\c++\数据结构.cpp(3) : error C2229: struct '__unnamed' has an illegal zero-sized array
F:\c++\数据结构.cpp(14) : error C2065: 'printf' : undeclared identifier
F:\c++\数据结构.cpp(31) : error C2065: 's' : undeclared identifier
F:\c++\数据结构.cpp(31) : error C2228: left of '.length' must have class/struct/union type
F:\c++\数据结构.cpp(37) : error C2065: 'i' : undeclared identifier