#include<stdio.h>
struct node
{
int data;
struct node *next;
};
int main()
{
struct node *p, *q, *head, *t, *newp, *newhead;
int n, i, a, len = 0;
head = NULL;
while(scanf("%d",&a)!=0 && a!=0)
{
len++;
p = (struct node *)malloc(sizeof(struct node));
p->data= a;
p->next = NULL;
if(head == NULL)
head = p;
else
q->next = p;
q = p;
}
t = head;
printf("正序输出\n");
for(i = 1; i <= len; i++)
{
printf("%d ",t->data);
t = t->next;
}
printf("\n");
printf("逆序输出\n");
for(i = 1; i <= len; i++)
{
q = p = head;
while(p->next != NULL)
{
q = p;
p = p->next;
}
if(i == 1)
newp = newhead = p;
else
{
newp->next = p;
newp = newp->next;
}
q->next = NULL;
}
t = newhead;
while(t != NULL)
{
printf("%d ",t->data);
t = t->next;
}
return 0;
}