在C语言链表的插入操作
提问人:杨紫红发布时间:2020-11-17
写一个函数insert插入一结点。
分析:插入点可能有以下三种情况:在链表中间、表头、表尾。
struct student *insert(struct student *head, struct student *stud )
{ struct student *p0, *p1, *p2;
p1=head; p0=stud;
if(head= =NULL) {head=p0; p0->next=NULL;}
else { while((p0->num>p1->num)&&(p1->next !=NULL))
{ p2=p1; p1=p1->next;}
if(p0->num<=p1->num)
if(head= =p1) {head=p0; p0->next=p1; }
else { p2->next=p0; p0->next=p1; }
else {p1->next=p0; p0->next=NULL;}
}
return(head);}
分析:插入点可能有以下三种情况:在链表中间、表头、表尾。
struct student *insert(struct student *head, struct student *stud )
{ struct student *p0, *p1, *p2;
p1=head; p0=stud;
if(head= =NULL) {head=p0; p0->next=NULL;}
else { while((p0->num>p1->num)&&(p1->next !=NULL))
{ p2=p1; p1=p1->next;}
if(p0->num<=p1->num)
if(head= =p1) {head=p0; p0->next=p1; }
else { p2->next=p0; p0->next=p1; }
else {p1->next=p0; p0->next=NULL;}
}
return(head);}
继续查找其他问题的答案?
相关视频回答
回复(0)
点击加载更多评论>>