美文网首页
2018-07-07

2018-07-07

作者: nicetomeetutoo | 来源:发表于2018-07-07 22:31 被阅读0次

    单向链表中如何删除值为偶数或者奇数的节点呢

    1.首先我们得创建一个链表在主调中调用前面的Creatlink函数

    2.创建函数Elemsn *delet(Elemsn *head)进行删除操作,最后在主调中调用

    3.这里我只写出delet函数,下面的函数是删除偶数节点的代码

    Elemsn *dele(Elemsn *head)//将链表的头传给函数

    {

        Elemsn *p;

        Elemsn *q;

        while(!(head->data%2))//判断头结点所存放的值是不是偶数,若是则删除,将头结点后移

        {

                p=head->next;//用p保存头结点指针域的地址

                free(head);//释放头结点即为删除这个节点

                head=p;//将头结点后移

        }

        q=head;//让q指向头结点

        for(p=head->next;p!=NULL;)//进入循环,当指针p指向空时,跳出循环

        {

            if(p->data%2==0)//判断p所指节点存放的值是否为偶数,若是则进入if语句

            {

                q->next=p->next;//让q的指针域存放p指针域所存放的值,也就是让q跳过了p所指的节点。

                 free(p);//释放p所指的节点

                p=q->next;//p指向q所指的下一个节点

            }

            else//若p所指的节点存放的不是偶数,指针p,q均后移

            {

                q=p;//

                p=p->next;

            }

        }

        return head;//返回头结点

    }

    相关文章

      网友评论

          本文标题:2018-07-07

          本文链接:https://www.haomeiwen.com/subject/uoqnuftx.html