#include
#define MAXSIZE 50
typedef struct node
{
int data[MAXSIZE];
int length;
}SeqLink;
int len1;
int len2;
int arr[MAXSIZE];
void SeqLinkInit(SeqLink *L)//初始化
{
L->length = -1;
}
int CreatSeqLink(SeqLink *L)//创建顺序表
{
while (1)
{
if (MAXSIZE-1 < ++L->length)
{
printf("表满!\n");
return 0;
}
scanf("%d", &L->data[L->length]);
if (0 == L->data[L->length])
{
break;
}
}
return L->length;
}
void A(SeqLink *L1, SeqLink *L2)//求交集
{
int i, j;
int count = 0;
for (i=0; i
for (j=0; j
if (L1->data[i] == L2->data[j])
{
arr[count++] = L1->data[i];
break;
}
}
}
}
void B(SeqLink *L1, SeqLink *L2)//求并集
{
int i, j;
int num;
int flag;
int count = 0;
for (i=0; i
arr[count++] = L1->data[i];
}
num = count;
for (i=0; i
flag = 1;
for (j=0; j
if (arr[j] == L2->data[i])
{
flag = 0;
break;
}
}
if (1 == flag)
{
arr[count++] = L2->data[i];
}
}
}
void Output(void)//输出
{
int i;
for (i=0; arr[i]!=0; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
void main(void)
{
SeqLink L1;
SeqLink L2;
SeqLinkInit(&L1);
SeqLinkInit(&L2);
printf("请输入集合A:(按0结束输入)\n");
len1 = CreatSeqLink(&L1);
printf("请输入集合B:(按0结束输入)\n");
len2 = CreatSeqLink(&L2);
A(&L1, &L2);
printf("A与B交集为:\n");
Output();
B(&L1, &L2);
printf("A与B并集为:\n");
Output();
}