集合作为一种数据结构,其中的元素具有唯一性,而集合 求交和集合 求差作为集合的一般运算具有普遍意义,下面就来写写
先是 已序集合的求交
void set_intersection(int* a,int *b,int num1,int num2)
{
if(a==NULL||b==NULL||num1<=0||num2<=0)
return ;
int i=j=0;
while(i<num1&&j<num2)
{
if(a[i]==b[j])
{
printf("%d ",a[i]);
i++;
j++;
}
else if(a[i]<b[j])
i++;
else j++;
}
}
求差集
void set_diffenence(int* a,int *b,int num1,int num2)
{
if(a==NULL||b==NULL||num1<=0||num2<=0)
return ;
int i=j=0;
while(i<num1&&j<num2)
{
if(a[i]==b[j])
{
if(j==num2-1)
{
i++;
for(;i<num1;i++)
printf("%d ",a[i]);
break;
}
i++;
j++;
}
else if(a[i]<b[j])
{
printf("%d ",a[i]);
i++;
}
else
{
if(j==num2-1)
{
for(;i<num1;i++)
printf("%d ",a[i]);
break;
}
j++;
}
}
}