数据结构- 二叉树递归:
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#include<stack>
#include<utility>
using namespace std;
typedef struct BiTNode{
char date;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void Pre_CreateBiTree(BiTree &T)
{
char ch;
scanf("%c",&ch);
if(ch=='#') T=NULL;
else {
T=new BiTNode;
T->date=ch;
Pre_CreateBiTree(T->lchild);
Pre_CreateBiTree(T->rchild);
}
}
void Pre_Traverse(BiTree T)
{
if(T) {
printf("%c",T->date);
Pre_Traverse(T->lchild);
Pre_Traverse(T->rchild);
}
}
void In_Traverse(BiTree T)
{
if(T) {
In_Traverse(T->lchild);
printf("%c",T->date);
In_Traverse(T->rchild);
}
}
void Post_Traverse(BiTree T)
{
if(T) {
Post_Traverse(T->lchild);
Post_Traverse(T->rchild);
printf("%c",T->date);
}
}
void Lever_Traverse(BiTree T)
{
queue<BiTNode*> Q;
if(T) Q.push(T);
while(!Q.empty()) {
BiTree tem=Q.front(); Q.pop();
printf(&