1.头文件及类型定义
#include<stdio.h>
#include<stdlib.h>
#define ElemType BiTNode*
#define ElemType1 char
2.二叉链表结点类型定义
typedef struct BiTNode {
ElemType1 data;
struct BiTNode* lchild, * rchild;
}BiTNode, * BiTree;
typedef struct LinkStackNode {
ElemType data;
struct LinkStackNode* next;
}SNode, * LiStack;
3.函数声明
void CreateBiTree(BiTree& T);
bool InitLinkStack(LiStack& S);
bool LiStackEmpty(LiStack S);
bool Push(LiStack& S, ElemType e);
bool Pop(LiStack& S, ElemType& e);
bool GetTop(LiStack S, ElemType& e);
void visit(BiTNode* p);
void PreOrder(BiTree T);
void InOrder(BiTree T);
void PostOrder(BiTree T);
4.基本操作
4.1 先序建立二叉树
void CreateBiTree(BiTree& T) {
char c;
scanf("%c", &c);
if (c == '#')
T = NULL;
else {
T = (BiTNode*)malloc