1.用顺序表表示集合,设计一个算法实现集合的求交集运算
void Intersection(SqList A,SqList B,SqList &C)
{ int i,j,k; //k记录C中的元素个数
for(i=0; i<A.length; i++) //用i遍历顺序表A
{ j=0;
while(j<B.length&&B.data[j]!=A.data[i])
j++;
if(j<B.length) //表示A.data[i]在B中,将其放到C中
C.data[k++]=A.data[i];
}
C.length=k; //修改集合长度
}
2.用顺序表表示集合,设计一个算法实现集合的求并集运算
void Union(SqList A,SqList B,SqList &C)
{ int i,j,k; //k记录C中的元素个数
for(i=0; i<A.length; i++) //将A中元素复制到C中
C.data[i]=A.data[i];
k=A.length;
for(i=0; i<B.length; i++) //遍历顺序表B
{ j=0;
while(j<A.length&&B.data[i]!=A.data[j])
j++;
if(j==A.length) //表示B.data[i]不在A中,将其放到C中
C.data[k++]=B.data[i];
}
C.length=k; //修改集合长度
}
3.用顺序表表示集合,设计一个算法实现集合的求差运算
void Diffence(SqList A,SqList B,SqList &C)
{ int i,j,k=0; //k记录C中的元素个数
for(i=0; i<A.length; i++) //遍历顺序表A
{ j=0;
while(j<B.length&&B.data[j]!=A.data[i])
j++;
if(j==B.length) //表示A.data[i]不在B中,将其放到C中
C.data[k++]=A.data[i]);
}
C.length=k; //修改集合长度
}