#include<stdio.h>
#include<stdlib.h>
typedef struct
{
int data[10];
int length;
}Sqlist;
void CreateList(Sqlist *&L)
{
int i = 0;
int len = 0;
int a[5];
L = (Sqlist*)malloc(sizeof(Sqlist));
while( i < 5)
{
scanf("%d",&a[i]);
L->data[i] = a[i];
i++;
len++;
}
L->length = len;
}
void Display(Sqlist *L)
{
int i;
for( i = 0; i < L->length; i++)
{
printf("%d ",L->data[i]);
}
printf("\n");
}
//求交集
void unionList(Sqlist *L1,Sqlist *L2,Sqlist *&L3)
{
int i,j = 0;
int e;
L3 = (Sqlist *)malloc(sizeof(Sqlist));
L3->data[0] = L1->data[0];
L3->length = 1;
for( i=1; i<L1->length; i++)
{
j = 0;
while(j < i)
{
if(L3->data[j] != L1->data[i])
{
if( j == i-1)
{
L3->data[L3->length++] = L1->data[i];
break;
}
else
j++;
}
else
break;
}
}
for( i=0; i<L2->length; i++)
{
j = 0;
while(j < L3->length)
{
if(L3->data[j] != L2->data[i])
{
if( j == L3->length-1)
{
L3->data[L3->length++] = L2->data[i];
break;
}
else
j++;
}
else
break;
}
}
}
int main()
{
int i;
Sqlist *L1,*L2,*L3;
CreateList(L1);
CreateList(L2);
printf("L1: ");
Display(L1);
printf("L2: ");
Display(L2);
unionList(L1,L2,L3);
printf("交集L3: ");
Display(L3);
return 0;
}
顺序表--求两个集合的交集
最新推荐文章于 2024-05-20 17:41:15 发布