设单链表L带头结点且非空,指针变量p指向L中的一个结点,且该结点既不是L中的第一个结点,也不是L中的最后一个结点,指针变量s指向一个待插入L的新结点.试写出能完成下列操作的语句序列
问题描述:
设单链表L带头结点且非空,指针变量p指向L中的一个结点,且该结点既不是L中的第一个结点,也不是L中的最后一个结点,指针变量s指向一个待插入L的新结点.试写出能完成下列操作的语句序列
⑴在p所指结点之前插入s所指结点;
⑵在L中最后一个结点之后插入s所指结点;
⑶删除p所指结点的直接后继;
⑷删除L中第一个结点.
答
1.tmp = L;
while(tmp->next !=p) tmp=tmp->next;
tmp->next = s;
s->next = p;
2. tmp = L;
while(tmp->next != null ) tmp=tmp->next;
tmp->next =s;
s->next =null;
3. tmp = p->next;
p->next = tmp->next;
4. tmp = L->next;
L->next = tmp->next;