您的位置:首页 > 其它

链表按值大小插入和结点排序

2016-03-18 20:51 239 查看
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  链表 指针 struct