#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define MAXSIZE 20 /*存储空间初始分配量*/
typedef int ElemType;
typedef int Status;
typedef struct LNode{
ElemType data[MAXSIZE];
int length;
}Node,*List;
List MakeEmpty(){
List L;
L = (List)malloc(sizeof(Node));
if(L)
return ERROR;
L->length = NULL;
return L;
}
Status GetElem(int k,ElemType *e,List L){
if(L->length == NULL || k<1 || k>length+1)
return ERROR;
*e = L->data[k-1];
return OK;
}
int LocateElem(ElemType X,List L){
int i;
i = 0;
if(L->length == NULL)
return ERROR;
while(i<L-length && L->data[i]!=X){
i++;
}
if(i>=L-length)
return ERROR;
else
return i;
}
Status Insert(ElemType X,int k,List L){
int i;
if(L->length >= MAXSIZE)
return ERROR;
if(k<1 || k>L->length+1)
return ERROR;
for(i=L->length-1;i>=k-1;i--){
L->data[i+1] = L->data[i];
}
L->data[k-1] = X;
L->length++;
return OK;
}
Status Delete(int k,List L){
int i;
if(L->length == NULL)
return ERROR;
if(k<1 || k>L->length+1)
return ERROR;
for(i=k;i<=L->length;i++){
L->data[k-1]=L->data[k];
}
L->length--;
return OK;
}