#include"stdio.h"
#include"stdlib.h"
typedef struct node
{
int num;
struct node *next;
}node;
node *head = NULL;
node *last = NULL;
void print()
{
node *p = head;
while( p != NULL)
{
printf("%d ",p->num);
p = p->next;
}
printf("\n");
}
void create()
{
int n = 6;
node *p;
while(n)
{
p = (node *)malloc( sizeof(node) );
p->num = rand()%50+1;
if( head == NULL)
{
head = p;
last = p;
}
else
{
last->next = p;
last = p;
}
last->next = NULL;
n--;
}
}
void sort()
{
node *p,*q,*front;
int i,j,flag;
if( head == NULL || head->next == NULL)
{
return;
}
for( i = 0; i < 6 ; i++)
{
p = head;
front = NULL;
q = p->next;
flag = 0;
for( j = 0 ; j < 6-i-1;j++)
{
if( p->num > q->num)
{
flag++;
if(front == NULL)
{
p->next = q->next;
q->next = p;
head = q;
}
else
{
p->next = q->next;
q->next = p;
front->next = q;
}
front = q;
q = p->next;
}
else
{
front = p;
p = q;
q = p->next;
}
}
if( flag == 0)
{
break;
}
}
}
int main()
{
printf("正在产生随机数\n");
create();
printf("排序前:\n");
print();
sort();
printf("排序后:\n");
print();
return 0;
}