Description
A和B分别表示两个集合,集合中的元素为整数,C=A和B的差集,计算并依次输出C中的元素。
要求:用顺序表存储,另辟空间保存C中元素 。
Input
输入集合A的元素个数n(n>=0)
依次输入A中的元素,以空格分隔。
输入集合B的元素个数m(m>=0)
依次输入B中的元素,以空格分隔。
Output
依次输出C中的元素,以空格分隔。
Sample Input
4 10 5 20 6 5 5 4 3 20 1
Sample Output
10 6
#include<stdio.h>
#define MAXSIZE 100 // 线性表的最大长度
typedef int ElemType;//ELEMENT定义为int类型
//定义结构体
typedef struct{
ElemType data[MAXSIZE];
int length;
}SqList;
void DifferentSet(SqList *A,SqList *B,SqList *C){
int i=0;
int j = 0;
for (i=0;i<A->length;i++)
{
int k = 0;
for(j=0;j<B->length;j++)
{
if(B->data[j] == A->data[i])
{
k++;
}
}
if(k==0)
{
C->data[C->length++]=A->data[i];
}
}
}
void Display(SqList *L){
int i;
for(i=0;i<L->length;i++)
printf("%d ",L->data[i]);
}
void main()
{
int i,j;
int list1_len;
int list2_len;
SqList *A = (SqList*)malloc(sizeof(SqList));
A->length=0;
scanf("%d",&list1_len);
for(i=0;i<list1_len;i++)
{
scanf("%d",&A->data[i]);
A->length++;
}
SqList *B = (SqList*)malloc(sizeof(SqList));
B->length=0;
scanf("%d",&list2_len);
for(i=0;i<list2_len;i++)
{
scanf("%d",&B->data[i]);
B->length++;
}
SqList *C = (SqList*)malloc(sizeof(SqList));
C->length=0;
DifferentSet(A,B,C);
Display(C);
}