创建一个树的结构体
using namespace std; typedef struct node{ char data; struct node *lchild; struct node *rchild; }BTnode;
创建树的函数,如果遇到#则代表无输入
void CreateBtree(BTnode *&T){ char data; cin>>data; T=new BTnode; if(data=='#'){ T=NULL; return ; } T->lchild=NULL; T->rchild=NULL; T->data=data; CreateBtree(T->lchild); CreateBtree(T->rchild); }
前序遍历
void PreOrder(BTnode *&T){ if(T){ cout<<T->data<<" "; PreOrder(T->lchild); PreOrder(T->rchild); } }
中序遍历
void InOrder(BTnode *&T){ if(T){ InOrder(T->lchild); cout<<T->data<<" "; InOrder(T->rchild); } }
后序遍历
void PostOrder(BTnode *&T){ if(T){ PostOrder(T->lchild); PostOrder(T->rchild); cout<<T->data<<" "; } }
如图输出: