#include <iostream>
#define MAXSIZE 10
typedef struct {
int data[MAXSIZE];
int top;
}SqStack;
bool initStack(SqStack &S){
S.top = -1;
}
bool StackEmpty(SqStack S){
if(S.top==-1){
return true;
}
return false;
}
bool push(SqStack &S,int x){
S.data[++S.top] = x;
return true;
}
bool pop(SqStack &S,int &x){
if(!StackEmpty(S)){
x = S.data[S.top--];
return true;
}
return false;
}
bool GetTop(SqStack S,int &x){
if(!StackEmpty(S)){
x = S.data[S.top];
return true;
}
return false;
}
bool DestroyStack(SqStack &S){
S.top = -1;
return true;
}
void printStack(SqStack S){
for(int i=0;i<S.top+1;i++){
if(!StackEmpty(S)){
int x;
GetTop(S,x);
printf("%d",x);
}
}
}
int main(){
SqStack S;
initStack(S);
push(S,1);
push(S,2);
push(S,3);
printStack(S);
}