数据结构学习笔记-5

静态链表的插入操作(C语言实现)

//获得空闲分量的下标
int Malloc_SLL(StaticLinkList space)
{

    int i = space[0].cur;
    if(space[0].cur)
    {
        //更新备用分量
        space[0].cur = space[i].cur;
        return i;
    }             
}

/*在静态链表L中第i个元素之前插入新的数据元素e*/
Status ListInsert(StaticLinkList L, int i, ElemType e)
{
    int j, k, l;

    k = MAX_SIZE - 1; //数组的最后一个元素下标

    if(i<1 || i>ListLength(L)+1)
    {
        retrun ERROR;
    }

    j = Malloc_SLL(L);
    if(j)
    {
        L[j].data = e;
        for(l=1; l<=i-1; l++)
        {
            k = L[k].cur;
        }
        L[j].cur = L[k].cur;
        L[k].cur = j;

        return OK;
    }

    return ERROR;             
}