位置:首页 > 软件操作教程 > 编程开发 > C语言 > 问题详情

C语言 链表的删除操作

提问人:刘团圆发布时间:2020-12-02

当需要删除链表中某一结点,只需将该结点的前一结点的指针域指向该结点的后一结点,之后释放该结点即可,过程如图所示。

image.png

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)
返回顶部