sort.cpp
来自「关于教学管理的数据库」· C++ 代码 · 共 96 行
CPP
96 行
#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 + =
减小字号Ctrl + -
显示快捷键?