C语言 链表的删除操作
提问人:刘团圆发布时间:2020-12-02
当需要删除链表中某一结点,只需将该结点的前一结点的指针域指向该结点的后一结点,之后释放该结点即可,过程如图所示。
1.定义指针p=h,指针q=p->next。
2.如果q->data==x,则:
•让p指针所指向结点的next指向q->next,将q结点悬空。
•释放q结点。
•让q=p->next,以便搜索下一个符合要求的结点;
3.如果q->data!=x,则令p、q指针向后移,具体为:
p=q;
q=q->next ;
删除结点的函数del()具体程序代码如下:
void del(SLIST *h,int x)
{
SLIST *p.*q;
p=h;q=p->next;
while(q!=NULL)
{
if (q->data==x)
{
p->next-Bq->next;
free(q);
q=p->next ;
}
else
{
p=q;
q=q->next ;
}
}
}
继续查找其他问题的答案?
相关视频回答
回复(0)
点击加载更多评论>>