代码:
#include<stdio.h>
#include<stdlib.h>
typedef struct Lnode{
int data;
struct Lnode*next;
}*LinkList,Lnode;
LinkList create(LinkList L,int A[],int n){
LinkList p,C;
L=(LinkList)malloc(sizeof(Lnode));
C=L;
int i;
for(i=0;i<n;i++){
p=(LinkList)malloc(sizeof(Lnode));
p->data=A[i];
C->next=p;
C=p;
}
C->next=NULL;
return L;
}
void Sort(LinkList L){
LinkList p,pre,q,p1;
p=L->next->next;
L->next->next=NULL;
while(p){
pre=L;
q=pre->next;
while(q!=NULL&&q->data<p->data){
pre=q;
q=q->next;
}
p1=p->next;
p->next=pre->next;
pre->next=p;
p=p1;
}
}
void display(LinkList L){
LinkList p;
p=L->next;
while(p!=NULL){
printf("%d ",p->data);
p=p->next;
}
}
int main(){
int A[]={1,2,34,5,35};
LinkList L;
L=create(L,A,5);
display(L);
printf("\n");
Sort(L);
display(L);
printf("\n");
return 0;
}
实验结果: