单链表的插入节点与删除节点

来源:互联网 发布:spine mac 破解版 编辑:程序博客网 时间:2024/04/30 01:11

注意事项:

插入节点,新链表一定要从前往后进行连接

删除节点,新链表一定要从前往后进行连接

1、单链表的插入节点

node * insert(node* head,int num)

{

node * p0,*p1,*p2;

        p0=head;

        p1=p0->next;

        p0->data=num;

       while(p0->data>p1->data&&p1->next!=NULL)

        {

           p2=p1;

           p1=p1->next;

        }

if (p0->data<p1->data)

 {

   if(head==p1)

     {

head=p0;

p0->next=p1;

     }

  else{

p2-next=p0;

p0->next=p1;

         }

}

else{

p1->next=p0;

p0->next=NULL;

}

return head;

}

2、单链表删除节点

node *del(node *head,int num)

{

node * p1,*p2;

       p1=head;

while(num!=p1->data&&p1->next!=NULL)

{

p2=p1;

p1=p1->next;

}

if(num==p1->data)

{

if(head==p1)

{

      head=p1->next;

      free(p1);

}

else{

        p2->next=p1->next;

       }

}

else{

printf("\n%d could not been found",num);

}

return head;

}






0 0
原创粉丝点击