#include <iostream>
#include <stdlib.h>
#define MAXSIZE 100
struct node{
struct node *next;
int data;
};
void insert(int *A,int n){
int tmp,j;
for(int i=1;i<n;i++){
if(A[i]<A[i-1]){
tmp=A[i];
for(j=i-1;tmp<A[j];j--){
A[j+1]=A[j];
}
A[j+1]=tmp;
}
}
}
int main(){
int A[MAXSIZE];
for(int i=0;i<5;i++){
scanf("%d",&A[i]);
}//输入5个数据
insert(A,5);//5个数据的排序
//尾插法
struct node *p,*h,*q;
h=(struct node *)malloc(sizeof(struct node));
q=h;
for(int i=0;i<5;i++){
p=(struct node *)malloc(sizeof(struct node));
p->data=A[i];
q->next=p;
q=p;
}
q->next=NULL;
q=h->next;
//输出链表
for(int i=0;i<5;i++){
printf("%d ",q->data);
q=q->next;
}
}