#include<stdio.h>
#define MAXSIZE 100
#define OK 1
#define ERROR 0
typedef int ElemType;
typedef struct
{
ElemType elem[MAXSIZE];
int last;
}SeqList;
void Initlist(SeqList *L)
{
L->last=-1;
}
void putseqList(SeqList *L,int n)
{
int i;
for(i=0;i<n;i++)
scanf("%d",&(L->elem[i]));
L->last=L->last+n;
}
int PositionList(SeqList *L,int X)
{
int j;
for(j=0;j<=L->last;j++)
if(X<L->elem[j])
return j+1;
return (L->last+1);
}
int InsList(SeqList *L,int i,int e)
{
int k;
if((i<1)||(i>L->last+2))
{
return(ERROR);
}
if(L->last>=MAXSIZE-1)
{
return(ERROR);
}
for(k=L->last;k>=i-1;k--)
L->elem[k+1]=L->elem[k];
L->elem[i-1]=e;
L->last++;
return(OK);
}
int OutputSeqList(SeqList *L)
{
int i;
for(i=0;i<=L->last;i++)
printf("%d ",L->elem[i]);
return(L->elem[i]);
}
int Get(SeqList *L,int i)
{
return L->elem[i];
}
int Exist(SeqList *L,int n)
{
int i;
for(i=0;i<=L->last;i++)
{
if(L->elem[i]==n)
{
return 1;
}
}
return 0;
}
void Delete(SeqList *L,int i)
{
int j;
for(j=i+1;j<=L->last;j++)
{
L->elem[j-1]=L->elem[j];
}
L->last--;
}
int main()
{
int m,n,p;
SeqList la,lb,lc;
Initlist(&la);
Initlist(&lb);
Initlist(&lc);
scanf("%d %d %d",&m,&n,&p);
putseqList(&la,m);
putseqList(&lb,n);
putseqList(&lc,p);
int data;
int i;
for(i=0;i<m;)
{
data=Get(&la,i);
if(Exist(&lb,data)&&Exist(&lc,data))
{
Delete(&la,i);
m--;
}
else
{
i++;
}
}
OutputSeqList(&la);
printf("\n");
return 0;
}
线性表之顺序表
最新推荐文章于 2024-04-24 21:01:22 发布