看不懂,求大神讲解~~
这段是用链表和文件做的学生成绩管理系统按学号排序。。。看不懂。。。。。求讲解struct stu *sort_xuehao (struct stu *head) // 按学号排序
{
struct stu *p,*p1,*p2,*p3;
struct stu h, t;
if (head == NULL) return NULL;
h.next=head;
p=&h;
while (p->next!=NULL)
{
p=p->next;
}
p=p->next=&t;
while (p!=h.next)
{
p3=&h;
p1=p3->next;
p2=p1->next;
while (p2!=p)
{
if ((p1->num )>(p2->num))
{
p1->next=p2->next;
p2->next=p1;
p3->next=p2;
p3=p2;
p2=p1->next;
}
else
{
p3=p1;
p1=p2;
p2=p2->next;
}
}
p=p1;
}
while (p->next!=&t)
{
p=p->next;
}
p->next=NULL;
return h.next;
}