#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct node * Ptrl;
struct node{
int *Data;
int Top;
};
int N;
Ptrl Dent(int N)//初始化
{
Ptrl T;
T=(Ptrl)malloc(sizeof(struct node));
T->Data=(int *)malloc(sizeof(int)*N);
T->Top=-1;
return T;
}
void Push(Ptrl Ptrs,int item)//入栈
{
if(Ptrs->Top==N-1){
printf("堆栈满\n");
return;
}else{
++Ptrs->Top;
Ptrs->Data[Ptrs->Top]=item;
return;
}
}
int Pop(Ptrl Ptrs)//出栈
{
if(Ptrs->Top==-1){
printf("堆栈空\n");
return -1;
}else{
return (Ptrs->Data[Ptrs->Top--]) ;
}
}
void empty(Ptrl Ptrs)//清空栈
{
Ptrs->Top=-1;
}
int main()
{
Ptrl T;
int M,Q;
scanf("%d",&N);
T=Dent(N);
for(int i=0;i<N;i++)
{
scanf("%d",&M);
Push(T,M);
}
for(int i=0;i<N;i++)
{
Q=Pop(T);
if(Q==-1)
{
printf("堆栈空\n");
}
else
{
printf("%d ",Q);
}
}
return 0;
}