【算法】插入:在第i个结点之前插入值为e的新结点
算法步骤:

注意:不可以先执行第二步在执行第一步,这样会丢失$a_{i-1}$的地址
代码:
Status ListInsert_L(LinkList &L, int i, ElemType e) {
LNode *p;
p = L; int j = 0;
while(p && j < i-1) {
p = p->next;
++j;
}
if(!p || j > i-1) {
return ERROR;
}
LNode *s;
s->data = e;
s->next = p->next;
p->next = s;
return OK;
}
【算法】删除:删除第i个结点
算法步骤:
代码:
Status ListDelete_L(LinkList &L, int i, ElemType &e) {
LNode *p, *q;
p = L; int j = 0;
while(p && j < i-1) {
p = p->next;
++j
}
if(!p || j > i-1) {
return ERROR;
}
q = p->next;
e = q->data;
p->next=q->next;
free(q);
return OK;
}