定义一个静态链表
typedef struct
{DataType data;
int cursor;
}SLinkList[maxsize];
SLinkList S;
void Init_SLinkList(SLinkList S)
{
S[0].cursor=0;
}
int Length_SLinkList(SLinkList S)
{
int l,c;
l=0;
c=0;
while(S[c].cursor!=0)
{
c=S[c].cursor;
i++;
}
return 1;
}
//按序号查找
int Get_SLinkList(SLinkList S,int i)
{
int c;
int j;//j是计数器,用来判断当前的结点是肉食第i个结点
c=0;
j=0;
while(c!=0&&j<i)
{
c=S[c].cursor;
j++;
}
return c;
}
//插入运算
void Insert_SLinkList(SLinkList S,int i,DataType x)
//在静态链表S中第i个位置插入值为x的新节点
{
int c,l;//c记录当前数组分量的位置,l记录S的表长
c=Get_SLinkList(L,i-1);
if(c==0)
{
printf("插入位置不合法");
exit(1);
}
else
{
l=length_SLinkList(S);
S[++l].data=x;
S[l].cursor=S[c].cursor;
S[c].cursor=l;
}
}