#include<stdio.h>
#include<stdlib.h>
typedef struct Node
{
int data;
struct Node *next;
}LNode,*LinkList;
LinkList CreatList()
{
LinkList L;
LNode *r,*s;
int x;
L=(LNode *)malloc(sizeof(LNode));
L->next = NULL;
r=L;
printf("请输入单链表(输入-1结束): ");
scanf("%d",&x);
while(x!=-1)
{
s=(LNode *)malloc(sizeof(LNode));
s->data=x;
s->next=r->next;
r->next=s;
r=s;
scanf("%d",&x);
}
r->next=NULL;
return L;
}
void print(LNode *L)
{
LNode *r;
r=L;
while(r->next!=NULL)
{
r=r->next;
printf("%d ",r->data);
}
printf("\n");
}
LinkList fun(LNode *L)
{
LNode *p, *q;
int t;
p = L->next;
while(p!=NULL)
{
q = p->next;
while (q != NULL)
{
if (p->data > q->data)
{
t = p->data;
p->data = q->data;
q->data = t;
}
q = q->next;
}
p = p->next;
}
return L;
}
int main()
{
LinkList L = CreatList();
printf("未排序的单链表:");
print(L);
fun(L);
printf("从小到大的排序:");
print(L);
return 0;
}