单链表冒泡排序
来源:互联网 发布:淘宝开虚拟充值网店 编辑:程序博客网 时间:2024/05/22 16:03
#include<iostream>#include<cstdio>#include <malloc.h>using namespace std;typedef struct node{ int data; struct node *next;}linklist;linklist* init(){ linklist* head; head=(linklist*)malloc(sizeof(linklist)); head->next=NULL; return head;}void sort(linklist* head){ linklist *p1,*p2; for(p1=head;p1!=NULL;p1=p1->next) for(p2=p1->next;p2!=NULL;p2=p2->next) { if(p1->data>p2->data) { int temp=p1->data; p1->data=p2->data; p2->data=temp; } }}void add(linklist *head,int x){ linklist *p,*q=head; p=(linklist*)malloc(sizeof(linklist)); p->data=x; p->next=NULL; while(q->next) q=q->next; q->next=p;}void show(linklist *head){ linklist *p=head; cout<<"升序排序之后:"<<endl; while(p->next) { cout<<p->data<<" "; p=p->next; }}int main(){ int n,x; linklist *p; p=init(); cout<<"输入元素个数:"<<endl; cin>>n; cout<<"输入元素:"<<endl; for(int i=0;i<n;i++) { cin>>x; add(p,x); } sort(p); show(p); return 0;}