单链表冒泡排序

来源:互联网 发布:淘宝开虚拟充值网店 编辑:程序博客网 时间: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;}

原创粉丝点击