/************************** 常量及各种类型定义 ************************/
#define PLUS -1 // '+'
#define MINUS -2 // '-'
#define ASTERISK -3 // '*'
#define SLANT -4 // '/'运算优先级
#define MAX 50 // 表达式最大长度
#define MAX_OPERAND 10 // 操作数最大长度
typedef int TElemType; // 树结点数据域类型为整型
typedef struct BiTNode{ // 二叉树的类型定义
TElemType data;
struct BiTNode *lchild,*rchild;
} BiTNode,*BiTree;
typedef union {
char OPTR; // SElemType 可以字符也可以是 二叉树的结点
BiTree BiT;
} SElemType;
#include<iostream.h> //标准输入输出 cin<< cout<<
#include<stdlib.h>//类型转换
#include<process.h>
#include<string.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int status;
#define STACK_INIT_SIZE 100//定义栈的初始长度
#define STACKINCREMENT 10 //定义栈每次追加分配的长度
//实现栈的数据类型
typedef struct{
SElemType *elem;//栈顶指针
int top;//当前分配的最大容量(以SElemType为单位)
int stacksize;//约定的增补空间量(以SElemType为单位)
}Stack;
//栈的各项操作的实现 //2222 1
status InitStack(Stack &s){
//初始化栈
s.elem=new SElemType[STACK_INIT_SIZE];
if (!s.elem) return OVERFLOW;
s.top=-1;//顺序栈中当前所含元素的个数为零个
s.stacksize=STACK_INIT_SIZE;
return OK;
}
status DestroyStack(Stack &s){
//销毁栈
delete s.elem;