#include<stdio.h>
#include<malloc.h>
#define INIT_SIZE 10
#define INCREM 5
typedef int ElemType;
typedef struct SqList{
ElemType *slist;
int length;
int listsize;
}SqList;
int InitSq(SqList *L)
{
L->slist=(ElemType *)malloc(INIT_SIZE*sizeof(ElemType));
if(L->slist==NULL){
return 0;
}
L->length=0;
L->listsize=INIT_SIZE;
return 1;
}
int InsertSq(SqList *L, int i, ElemType e)
{
if(i<1||i>L->length+1){
return 0;
}
if(L->length>=L->listsize){
L->slist=(ElemType *)realloc(L->slist,(L->listsize+INCREM)*sizeof(ElemType));
if(L->slist==NULL)
return 0;
}
int j;
for(j=L->length-1;j>=i-1;j--){
L->slist[j+1]=L->slist[j];
}
L->slist[i-1]=e;
L->length++;
return 1;
}
int DeleteSq(SqList *L,int i)
{
if(i<1||i>L->length)
return 0;
int k;
for(k=i;k<L->length;k++)
{
L->slist[k-1]=L->slist[k];
}
L->length--;
return 1;
}
void PrintSq(SqList *L)
{
int i;
for(i=0;i<L->length;i++)
{
printf("%d ",L->slist[i]);
}
if(L->length==0)
printf("*");
}
void func(SqList *L1,SqList *L2,SqList *L3)
{
int i=0;
int j = 0;
for (i=0;i<L1->length;i++)
{
int k = 0;
for(j=0;j<L2->length;j++)
{
if(L2->slist[j] == L1->slist[i])
{
k++;
}
}
if(k==0)
{
L3->slist[L3->length++]=L1->slist[i];
}
}
}
int main()
{
SqList sq1,sq2,sq3;
ElemType e;
int n,m,i;
InitSq(&sq1);
InitSq(&sq2);
InitSq(&sq3);
scanf("%d",&n);
scanf("%d",&m);
for(i=0;i<n;i++)
{
scanf("%d",&e);
InsertSq(&sq1,i+1,e);
}
for(i=0;i<m;i++)
{
scanf("%d",&e);
InsertSq(&sq2,i+1,e);
}
func(&sq1,&sq2,&sq3);
PrintSq(&sq3);
return 0;
}
顺序表实现
最新推荐文章于 2024-05-23 14:07:54 发布