新手请教(用的顺序表)
头文件LinearList.h
#include <stdio.h>
#define ListSize 100
struct SList //结构定义
{
DataType list[ListSize];
int length;
};
typedef struct SList SeqList;
SeqList * InitList() //线性表初始化
{
SeqList *L;
L->length=0;
return L;
}
int EmptyList(SeqList * L) //是否为空,为空返回1,负责返回0
{
if(L->length==0)
{
return 1;
}
else
return 0;
}
DataType GetList(int i,SeqList * L)//求出第i个元素
{
if(i<1||i>L->length)
{
printf("wrong number.\n");
return NULL;
}
else
return L->list[i];
}
int LocateList(DataType e, SeqList *L)//查找
{
int i,j,k;
j=0;
for(i=1;i<=L->length;i++)
{
if(L->list[i]==e)
{
k=i;
j++;
}
}
if (j<1)
{
printf("can not find!\n");
return 0;
}
else
return k;
}
int InsertList(SeqList * L,int i, DataType e)
{
int j;
if(i<1||i>L->length+1)
{
printf("illegal.\n");
return -1;
}
else if (L->length>=ListSize)
{
printf("full.\n");
return 0;
}
else
{
for(j=L->length;j>=i;j--)
L->list[j]=L->list[j-1];
L->list[i-1]=e;
L->length=L->length+1;
return 1;
}
}
int DeletList(SeqList * L,int i)
{
int j;
if(i<1||i>L->length)
{
printf("wrong number!\n");
return 0;
}
else if (L->length==0)
{
printf("No data\n");
return 0;
}
else
{
for(j=L->length-1;j>=i;j--)
{
L->list[j]=L->list[j+1];
}
L->length=L->length-1;
return 1;
}
}
int LengthList(SeqList * L)
{
return L->length;
}
void ClearList(SeqList * L)
{
L->length=0;
}
主文件
#include "stdafx.h"
#define ListSize 100
typedef int DataType;
#include"LinearList.h"
int main(int argc, char* argv[])
{
SeqList *A ,*B,* C;
int i,j,t,m;
A=InitList();
B=InitList();
C=InitList();
printf("the number of A:");
scanf("%d",&j);
printf("please enter the elements of A:\n");
for(i=1;i<=j;i++)
{
scanf("%d",&t);
InsertList(A,(A->length+1),t);
}
printf("the number of B:");
scanf("%d",&j);
printf("please enter the elements of B:\n");
for(i=1;i<=j;i++)
{
scanf("%d",&t);
InsertList(B,(B->length+1),t);
}
m=0;
for(i=1;i<=A->length;i++)
{
for(j=1;j<=B->length;j++)
{
if(A->list[i]==B->list[j])
{
m++;
}
}
if(m==0)
{
InsertList(C,(C->length+1),A->list[i]);
}
}
A=C;
for(i=1;i<=(A->length);i++)
{
printf("%d",&(A->list[i]));
putchar('\n');
}
ClearList(C);
return 0;
}