数据结构系列之链表——单链表插入值为num的节点

来源:互联网 发布:linux shell 参数 编辑:程序博客网 时间:2024/05/16 19:12

 p0为待插入地址

步骤:

1.插入在头节点以前,p0->next=p1;head=p0;

2.插入中间节点,p2->next=p0;p0->next =p1;

3.插入尾节点,p1->next=p0;p0->next->NULL;

代码:

node* insert(node *head,int num){

    //由小到大有序单链表插入值num的节点

    node *p0,*p1,*p2;

    p1=head;

    p0=(node*)malloc(sizeof(node));

    p0->data=num;

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

           p2=p1;

           p1=p1->next;

    }

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

           if(head==p1){  //插入头节点

                  p0->next=p1;

                  head=p0;

           }else{                   //插入中间节点

                  p2->next=p0;

                  p0->next=p1;

           }

    }else{                          //插入尾节点

           p1->next=p0;

           p0->next=NULL;

    }

    return(head);

}

0 0