插入操作具体算法
Status ListInsert_L(Linklist &L,int i,Elemtype e){
//在带头结点的单链表L中第i个位置之前插入元素e
LinkList p=L;//p为移动指针,指向头结点
LNode *s;
int j=0;
for(p&&j<i-1) {
//找到第i-i个结点
p=p->next;
++J;
}
if(p!||j>i-1) return ERROR; //插入位置不合理
s=(LNode*)malloc(sizeof(LNode));
s->data=e;
s->next=p->next;
p-next=s;
return OK;
}
删除操作具体算法:
Status ListInsert_L(Linklist &L,int i,Elemtype &e){
//删除在带头结点的单链表L中第i个位置元素e
LinkList p=L;
LNode *q;
int j=0;
if(p->next&&j<i-1){
//寻找第i个结点并令p指向其前驱
p=p->next;
++j
}
if(!(p->next)||j>i-1) return ERROR;
q=p->next;
p->next=q->next;
e=q->data;
free(q);
return OK;