插入结点: 指针p所指的结点后插入指针s所指的结点 s>next=p->next; p->next=s 插入前: 插入后: p a a十 >next=s s->next=p->next S
插入结点: 指针p所指的结点后插入指针s所指的结点 ◼ s->next = p->next; p->next = s; a1 a2 a3 a1 a3 s->next=p->next a2 p p s s p->next=s 插入前: 插入后:
插入结点程序 Status ListInsert L(LinkList &L, int i, ElemType e) I LinkList s, p int J p 0 while(p&&ji-1p=p->next; ++jl if(lpllj>i-1) return ERROR s=(Lnode *)malloc(sizeof (Lnode)) if(!s) return OVERFLOW s>data s->next= p>next, p>next =s return OK
插入结点程序 Status ListInsert_L(LinkList &L, int i, ElemType e) { LinkList s,p; int j; p = L; j = 0; while(p&&j<i-1){p=p->next;++j} if(!p||j>i-1) return ERROR; s = (Lnode *)malloc(sizeof(Lnode)); if(!s) return OVERFLOW; s->data = e; s->next = p->next; p->next = s; return OK; }
删除结点: 删除指针p所指的结点后的结点 p->next= p->next ->next p 删除前: a,afa+ p p 删除后: p->next= p->next ->next free(s) 释放结点后:
删除结点: 删除指针p所指的结点后的结点 ◼ p->next = p->next ->next; a1 a2 a3 p 删除前: 删除后: a1 a2 a3 p p->next = p->next ->next s s=p->next 释放结点后: a1 a3 p free(s)