顺序表的存储结构:
typedef struct{
int data[Maxsize]; //存在顺序表中的元素
int length; //存放顺序表的长度
}SqList;
分析:
差集是什么意思?
C = A-B
C中元素为A中所有不属于B的元素。
例如:A: 2,3,4 B: 3,5,7
那么C: 2,4
遍历顺序表A,如果它与B中所有元素都不相同,则表示差集元素。 将其放到C中。
思路:
1.定义三个变量 i , j , k = 0;
2.通过for循环,遍历顺序表A,
在循环中,通过while循环,条件为 j < B.length&& B.data[j] != A.data[i];
3.如果 j 等于 B.length ,那么表示B中不存在A的元素,将其放入C中
4.C.length = k;
C代码实现:
void Diffence(SqList A,SqList B,SqList &C){
int i,j,k=0;
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){
C.data[k++] = A.data[i];
}
}
C.length = k;
}