您的位置:首页 > 其它

编写算法函数linklist delallx(linklist head, int x),删除带头结点单链表head中所有值为x的结点。

2017-11-04 10:51 2381 查看
/*

编写算法函数linklist delallx(linklist head, int x),删除带头结点单链表head中所有值为x的结点。
*/

linklist delallx(linklist head,int x)

{

   linklist p=head->next,q=NULL;

   while(p!=NULL)

   {

       while(p->info!=x){q=p;p=p->next;}      //查找x

       if(q==NULL)                                        //要删除的x就在第一个

       {

        head->next=p->next;

       }

       else                                                         

       {

           q->next=p->next;

       }

       p=p->next;

   }

   free(p);                                                //释放p结点

   return head;

}

int main()

{   datatype x;

    linklist head;

    head=creatbyqueue(); /*尾插入法建立带头结点的单链表*/

    print(head);

    printf("请输入要删除的值:");

    scanf("%d",&x);

    head=delallx(head,x);

    print(head);

    delList(head);

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐