要求
非递归的先中后序都要做,再加一个层序,共四个。
代码
#include<bits/stdc++.h>
#include<queue>
using namespace std;
char ch;
const int MAXSIZE = 100;
typedef struct BiTNode {
char data;
struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;
BiTNode *T;
BiTree q, p;
typedef struct{
//定义顺序栈
BiTree *base;
BiTree *top;
int stacksize;
}SqStack;
SqStack S;
int InitStack(SqStack &S){
// S.base = new BiTree[MAXSIZE];
S.base = (BiTree*)malloc(sizeof(BiTNode)*MAXSIZE);
if(!S.base) exit(OVERFLOW);
S.top = S.base;
S.stacksize = MAXSIZE;
return 1;
}
int Push(SqStack &S, BiTree e)//入栈
{
if(S.top - S.base == S.stacksize) //判断栈满
return 0;
*S.top++ = e; //元素e压入栈顶,栈顶指针上移一位;
return 1;
}