编辑代码

#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;
}//输出栈