#include <iostream>
using namespace std;
#define MAXSIZE 100
#define SElemType BiTNode*
#define TElemType char
typedef struct BiTNode{
TElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
typedef struct{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;
bool StackEmpty(SqStack S){
return (S.top==S.base)?true:false;
}
bool InitStack(SqStack &S){
S.base = new SElemType[MAXSIZE];
if(!S.base) return false;
S.top = S.base;
S.stacksize = MAXSIZE;
return true;
}
bool Push(SqStack &S,SElemType e){
if(S.top-S.base == S.stacksize) return false;
*S.top++ = e;
return true;
}
bool Pop(SqStack &S,SElemType &e){
if(StackEmpty(S)) return false;
e = *--S.top;
return true;
}
SElemType GetTop(SqStack S){
if(!StackEmpty(S))
return *(--S.top);
}
void StackTraverse(SqStack S){
while(S.top!=S.base)
cout<<*--S.top<<endl;
}