求解 ,如果这样排序,C语言链表排列头指针 怎么参加排序啊?
void order(struct Book *head)
{
struct Book *p,*q,*temp;
for(q=head;q->next!=NULL;q=q->next)
for(p=q->next;p->next!=NULL;p=p->next)//p从q后续开始到p后续为0
if(q->next->num> p->next->num)
{
if(q->next==p)//如果p为q的后续,交换三个指针
{
temp=p->next;
p->next=p->next->next;
temp->next=p;
q->next=temp;
p=temp;
}
else//否则交换4个指针
{
temp=q->next->next;
q->next->next=p->next->next;
p->next->next=temp;
temp=p->next;
p->next=q->next;
q->next=temp;
}
}
}
[解决办法]
[解决办法]