链表的冒泡排序

来源:互联网 发布:ae mac 破解补丁 编辑:程序博客网 时间:2024/05/22 23:11
这里交换的是list的data值,相比交换链表顺序简单,但比较耗时。
#include<stdio.h>#include<iostream>#include<cmath>using namespace std;struct List{int a;List *next;};void initlist(List* a){a=new List();a->a=0;a->next=NULL;}void input(List *a,int n){List *temp=a;cout<<"请输入n个数据"<<endl;while(n--){if(n>0)temp->next=new List();cin>>temp->a;temp=temp->next;if(n>0)temp->next=NULL;}}void sort(List *a){List *last=NULL;while(last!=a){List *temp=a;for(temp=a;temp->next!=last;temp=temp->next){if(temp->a>temp->next->a){int t=temp->a;temp->a=temp->next->a;temp->next->a=t;}}last=temp;}}int main(){int n,m;cout<<"请输入第一个链表数据个数"<<endl;cin>>n;List a;initlist(&a);input(&a,n);cout<<"请输入第二个链表数据个数"<<endl;cin>>m;List b;initlist(&b);input(&b,m);sort(&a);sort(&b);return 0;}

0 0