首页 > 软件操作教程 > 编程开发 > C语言
题目内容

C语言 链表的删除操作

题目答案

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

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条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

软件操作 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

相关视频试题

最需教育客户端 软件问题一手掌握

去 App Store 免费下载 iOS 客户端