#include<stdio.h>
#include<stdlib.h>
struct Stack{
int * Data;
int Top;//top为-1时表示为空栈
int MaxSize;//栈的最大容量
};
int pop(struct Stack*L){
if(-1==L->Top)
printf("栈为空");
return L->Data[L->Top--];
}
void push(struct Stack*L,int x){
if(L->Top==L->MaxSize-1){
printf("栈为满");
return;
}
L->Data[++L->Top]=x;
}
int main(){
int i;
int a[10];
struct Stack*L;
L=(struct Stack*)malloc(sizeof(struct Stack));// malloc动态分配空间
L->Top=-1;
L->MaxSize=300;
L->Data=(int*)malloc(sizeof(int)*L->MaxSize);//创建一个空栈
for(i=0;i<10;i++){
scanf("%d",&a[i]);
push(L,a[i]);
}
for(i=0;i<10;i++){
printf("%d ",pop(L));
}
return 0;
}