struct student
{
long num;
int score;
struct student *next;
};
//链表按值大小插入
struct student *insert (struct student *head, struct student *stud)
{
// head为链表头指针,stud为插入结点
struct studentt *p,*q,*s;
p=head;
q=head->next;
s=stud;
while (q->num<s->num&&p!=NULL){
q=q->next;
p=p->next;
}
//可以使用两个指针,一个在前,一个在后
//插入
s->next=p->next;
p->next=s;
return head;
}
//结点排序
struct student *sort(struct student *head){
//冒泡排序的思想
struct student *p,*s;
long temp;
int score;
p=head;s=head->next;
while (p!=NULL&&s!=NULL){
if (p->num>s->num){
//学号按小到大,同时更换成绩。
temp=p->num;
p->num=s->num;
s->num=temp;
score=p->score;
p->score=s->score;
s->score=score;
}
p=p->next;
s=s->next;
}
return head;
}