用指针实现二叉树(二叉树的链式存储结构)
#include <stdio.h>
#include <stdlib.h>
#define ERROR -1
typedef int ElemType;
typedef struct Node {
ElemType data;
struct Node* left;
struct Node* right;
}*TNode;
typedef struct Tree {
TNode root;
}*BiTree;
BiTree BiTreeInit(); //创建一颗空的二叉树
bool BiTreeEmpty(BiTree T); //判断一颗二叉树T是否为空
ElemType Root(BiTree T); //返回二叉树T的根节点标号
void MakeTree(ElemType x, BiTree L, BiTree R, BiTree T); //以x为根节点元素,分别以L和R为左、右子树构建一颗新的二叉树T
ElemType BreakTree(BiTree T, BiTree L, BiTree R); //函数MakeTree的逆运算,将二叉树T拆分为根节点元素,左子树L和右子树R等三部分
void PreOrder