二叉樹模版
#include <iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
using namespace std;
typedef struct BiTNode{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
//先序建樹
int CreateBiTree(BiTree &T)
{
char data;
scanf("%c",&data);
if(data=='#')
T=NULL;
else{
T=(BiTree)malloc(sizeof(BiTNode));
T->data=data;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
return 0;
}
//遍歷
void visit(BiTree T)
{
if(T->data!='#')
printf("%c",T->data);
}
//先序遍歷
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;
CreateBiTree(T);
PreOrder(T);
printf("\n");
InOrder(T);
printf("\n");
PostOrder(T);
printf("\n");
return 0;
}