您的位置:首页 > 理论基础 > 数据结构算法

数据结构_单链表实现选择排序

2014-07-10 22:30 232 查看
#include<stdio.h>

#include<stdlib.h>

typedef struct LNode

{

   int data;

   struct LNode *next;

}LNode;

void InitList(LNode *&L)

{

     L=(LNode*)malloc(sizeof(LNode));

     L->next=NULL;

}

void CreateListR(LNode *L,int a[],int n)

{

    int i;

    LNode *r=L,*s=NULL;

    for(i=0;i<n;i++)

    {

       s=(LNode*)malloc(sizeof(LNode));

       s->data=a[i];

       r->next=s;

       r=s;

    }

     r->next=NULL;

}

void VisitList(LNode *L)

{

     LNode *p=L->next;

     while(NULL!=p)

     {

       printf("%d\n",p->data);

       p=p->next;

     }

}

void Swap(int &a, int &b)

{

     int t=a;

     a=b;

     b=t;

}

void Sort(LNode *L)

{

     LNode *p=L->next;

     LNode *t=NULL;

     LNode *q=NULL;

     while(NULL!=p)

     {

       t=p;      

       q=p->next;      

       while(NULL!=q)

       {

           if(q->data < t->data)

           {

            t=q;

           } 

        q=q->next;

       }

     

       if(t!=p)

       {

          Swap(t->data,p->data);   

       }

       p=p->next;

     }

     

}

int main(void)

{

    const int N=5;

    int a[]={7,5,3,9,4};

    LNode *L;

    InitList(L);

    CreateListR(L,a,N);

    VisitList(L);

    Sort(L);

    

    printf("the seqoence after being sorted is as follows:\n");

    VisitList(L);

    system("pause");

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐