#include
typedef struct node
{
int data;
struct node *next;
}NODE;
NODE *CreateNode(int a)
{
NODE *s;
s=(NODE*)malloc(sizeof(NODE));
s->data=a;
s->next=NULL;
return s;
}
void InsertFirst(NODE *p,NODE *head)
{
NODE *s;
s=(NODE*)malloc(sizeof(NODE));
s=head;
head=p;
head->next=s;
}
void InsertLast(NODE *p,int n,NODE *head)
{
NODE *s;
int i;
s=(NODE*)malloc(sizeof(NODE));
s=head;
for(i=1;i
s=s->next;
}
s->next=p;
}
void DispLink(NODE *head)
{
while(head!=NULL)
{
printf("%d",head->data);
head=head->next;
}
}
void FreeLink(NODE *head)
{
NODE *s;
s=(NODE*)malloc(sizeof(NODE));
while(head!=NULL)
{
s=head->next;
head=head->next;
free(s);
}
}
int len(NODE *head)
{
int i;
for(i=1;head!=NULL;i++)
{
head=head->next;
}
return i;
}
main()
{
int i,n,N,a;
NODE *head,*s;
scanf("%d",&N);
head=(NODE*)malloc(sizeof(NODE));
scanf("%d",&a);
head=CreateNode(a);
for(i=0;i
n=len(head);
scanf("%d",&a);
s=CreateNode(a);
if(i%2==1)
{
InsertFirst(s,head);
}
else if(i%2==0)
{
InsertLast(s,n,head);
}
}
DispLink(head);
for(i=1;i<=N;i++)
{
FreeLink(head);
}
}