#include<stdio.h>
#include<stdlib.h>
//定义
typedef struct BiTNode{
int data; //数据域
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
//创建新节点
bool createNode(BiTree &T,int value){
T=(BiTNode *)malloc(sizeof(BiTNode)); //分配内存
if(T==NULL) //内存分配失败
return false;
T->data=value;
T->lchild=NULL; //新结点左孩子为空
T->rchild=NULL; //新结点右孩子为空
return true;
}
//访问结点
void visit(BiTree T){
int x=T->data;
printf("%d ",x);
}
//先序遍历
void PreOrder(BiTree T){
if(T!=NULL){
visit(T);
PreOrder(T->lchild);
PreOrder(T->rchild);
}
}
//中序遍历
void InOrder(BiTree T){
if(T!=NULL){
InOrder(T->lchild);
visit(T);
InOrder(T->rchild);
}
}
//后序遍历
void PostOrder(BiTree T){
if(T!=NULL){
PostOrder(T->lchild);
PostOrder(T->rchild);
visit(T);
}
}
int main(){
BiTree T;
createNode(T, 1);
createNode(T->lchild, 2);
createNode(T->rchild, 3);
createNode(T->lchild->lchild, 4);
createNode(T->lchild->rchild, 5);
// 先序遍历二叉树
printf("先序遍历结果为:");
PreOrder(T);
// 中序遍历二叉树
printf("中序遍历结果为:");
InOrder(T);
// 后序遍历二叉树
printf("后序遍历结果为:");
PostOrder(T);
return 0;
}