#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
typedef struct
{
int d;
}data;
data A[N], B[N], C[N], same[N];
int main()
{
int data, la, lb, lc, lSame;
printf("输入线性表A的数据:\n");
for(int i = 0; ; i ++ )
{
cin >> data;
A[i].d = data;
la = i;
if(cin.get() == '\n')
break;
}
printf("输入线性表B的数据:\n");
for(int i = 0; ; i ++ )
{
cin >> data;
B[i].d = data;
lb = i;
if(cin.get() == '\n')
break;
}
printf("输入线性表C的数据:\n");
for(int i = 0; ; i ++ )
{
cin >> data;
C[i].d = data;
lc = i;
if(cin.get() == '\n')
break;
}
for(int i = 0, j = 0, k = 0; i <= lb && j <= lc;)
{
if(B[i].d < C[j].d)
i ++ ;
else if(B[i].d > C[j].d)
j ++ ;
else
same[k ++ ].d = B[i].d, i ++ , j ++ ;
lSame = k - 1;
}
for(int i = 0, j = 0; i <= la && j <= lSame;)
{
if(A[i].d < same[j].d)
i ++ ;
else if(A[i].d > same[j].d)
j ++ ;
else
{
for(int k = i + 1; k <= la; k ++ )
{
A[k - 1].d = A[k].d;
}
i ++ , la -= 1;
}
}
printf("去重后线性表A为:\n");
for(int i = 0; i <= la; i ++ )
printf("%d ", A[i].d);
puts("");
return 0;
}
balabalabalabalabalabalabalabalabalabalabalabalabalabalabalabalabalabalabalabalabalabalabalabalabalabalabalabalabalabalabalabalabalabalabala