#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
#define MAXSIZE 20
#define ERROR 0
#define OK 1
#define FALSE 0
#define TRUE 1
typedef int Status;
typedef int ElemType;
//定义静态链表结构
typedef struct{
ElemType data;
int cur;
}Node,StaticLinkList[MAXSIZE];
//创建静态链表
Status InitList(StaticLinkList space){
int i;
for(i=0;i<MAXSIZE-1;i++){
space[i].cur=i+1;
}
space[i].cur=0;
return OK;
}
//在第i个元素前插入新元素
Status InsertList(StaticLinkList L,int i,ElemType e){
int j,k,l;
if(i<1||i>MAXSIZE-1)
return ERROR;
j=L[0].cur;
k=MAXSIZE-1;
if(j){
L[j].data=e;
for(l=1;l<=i-1;l++)
k=L[k].cur;
L[0].cur=L[j].cur;
L[j].cur=L[k].cur;
L[k].cur=j;
return OK;
}
return ERROR;
}
//回收节点到备用链表
void Free(StaticLinkList space,int k){
space[k].cur=space[0].cur;
space[0].cur=k;
}
//删除节点
Status ListDelete(StaticLinkList space,int i){
int j,k;
j=MAXSIZE-1;
for(k=1;k<=i-1;k++)
j=space[j].cur;
k=space[j].cur;
space[j].cur=space[k].cur;
Free(space,k);
return OK;
}