1. /* 删除在L中第i个数据元素e */
    2. Status ListDelete(StaticLinkList L, int i)
    3. {
    4. int j, k;
    5. if (i < 1 || i > ListLength(L))
    6. return ERROR;
    7. k = MAX_SIZE - 1;
    8. for (j = 1; j <= i - 1; j++)
    9. k = L[k].cur;
    10. j = L[k].cur;
    11. L[k].cur = L[j].cur;
    12. Free_SSL(L, j);
    13. return OK;
    14. }
    1. /* 将下标为k的空闲结点回收到备用链表 */
    2. void Free_SSL(StaticLinkList space, int k)
    3. {
    4. /* 把第一个元素cur值赋给要删除的分量cur */
    5. space[k].cur = space[0].cur;
    6. /* 把要删除的分量下标赋值给第一个元素的cur */
    7. space[0].cur = k;
    8. }
    1. /* 初始条件:静态链表L已存在。操作结果:返回L中数据元素个数 */
    2. int ListLength(StaticLinkList L)
    3. {
    4. int j = 0;
    5. int i = L[MAXSIZE - 1].cur;
    6. while (i){
    7. i = L[i].cur;
    8. j++;
    9. }
    10. return j;
    11. }