动态链表 节点插入的问题,p0->num>p1->num)&&(p1->next!=NULL这个是啥意思p0->num<=p1->num 为什么这样?
student*insert(student*head,student*stud){intn;student*p0,*p1,*p2;p1=head;p0=stud;if(...
student *insert(student *head,student *stud)
{
int n;
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;
else p2->next=p0;
p0->next=p1;
}
else
{p1->next=p0;p0->next=NULL;}
}
n=n+1;
return(head);
} 展开
{
int n;
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;
else p2->next=p0;
p0->next=p1;
}
else
{p1->next=p0;p0->next=NULL;}
}
n=n+1;
return(head);
} 展开
1个回答
展开全部
((p0->num>p1->num)&&(p1->next!=NULL))
((p0->num大于p1->num) 同时p1的下一个节点不是空节点。
((p0->num大于p1->num) 同时p1的下一个节点不是空节点。
追问
为什么要判断p0->num大于p1->num
追答
你没有说程序的功能,
看这个程序功能应该 是在顺序编号的节点插入一个节点后,节点还是顺序结构
比如 原来的Num节点顺序是 1 2 3 4 5 6 7 8 10 11 12 15 18 20 要求插入一个num=9的节点 ,肯定是依次比较,p0->num>p1->num 知道小于后一个节点是,插入。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询