#include <iostream>
#include <string>
using namespace std;
struct student
{
int age;
string name;
struct student *next;
};
void BubbleSort(struct student * head)
{
struct student *p,*q;
for(p = head ; p != NULL; p = p -> next)
{
for(q = p -> next; q != NULL; q = q -> next)
{
if((p -> age) > (q -> age))
{
//交换数据
int s = q -> age;
string t = q -> name;
q -> age = p -> age;
q -> name = p -> name;
p -> age = s;
p -> name = t;
}
}
}
}
int main()
{
//手动构建链表
struct student a;
a.age = 11;
a.name = "zs";
a.next = NULL;
struct student b;
b.age = 14;
b.name = "ls";
b.next = NULL;
struct student c;
c.age = 13;
c.name = "ww";
c.next = NULL;
struct student d;
d.age = 15;
d.name = "mz";
d.next = NULL;
//链在一起
struct student *head;
head = &a;
a.next = &b;
b.next = &c;
c.next = &d;
cout<<"排序前:\n";
struct student *p = head;
for(;p!=NULL;p=p->next)
{
cout<<p->age<<" "<<p->name<<endl;
}
BubbleSort(head);
cout<<"--------------\n";
cout<<"排序后:\n";
for(p = head;p!=NULL;p=p->next)
{
cout<<p->age<<" "<<p->name<<endl;
}
return 0;
}