#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;
}
#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;
}