📄 sort.cpp
字号:
#include"head.h"
#include<iostream.h>
void SortAll(Student* &head)
{
Student *right;
Student *left;
Student *p;
int count,pass,n;
for(p=head,count=0;p!=NULL;p=p->next)
{
count++; //求出链表的节点数
}
for(pass=1;pass<count;pass++)
{
for(left=head,right=left->next,n=0;n<count-pass;n++)
{
if(left->Average<right->Average)
{
if(left==head)
{
head=right;
left->next=right->next;
right->next=left;
right=left->next;
}
else
{
for(p=head;p->next!=left;p=p->next)
;
left->next=right->next;
right->next=left;
p->next=right;
right=left->next;
}
}
else
{
left=left->next;
right=left->next;
}
}
}
}
void SortByClass(Student* &head)
{
Student *right;
Student *left;
Student *p;
int count,pass,n;
for(p=head,count=0;p!=NULL;p=p->next)
{
count++; //记数
}
for(pass=1;pass<count;pass++)
{
for(left=head,right=left->next,n=0;n<count-pass;n++)
{
if(left->Class>right->Class)
{
if(left==head)
{
head=right;
left->next=right->next;
right->next=left;
right=left->next;
}
else
{
for(p=head;p->next!=left;p=p->next)
;
left->next=right->next;
right->next=left;
p->next=right;
right=left->next;
}
}
else
{
left=left->next;
right=left->next;
}
}
}
}
void SortEachClass(Student* &head)
{
SortAll(head);
SortByClass(head);
} //先对所有学生排序,再按班排序即实现此功能
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -