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);
}