#include<iostream>
using namespace std;
typedef char TElemType;
typedef struct BiTNode{
TElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void CreatBiTree(BiTree &T)
{
char ch;
cin>>ch;
if(ch=='#')
T=NULL;
else
{
T=new BiTNode;
T->data=ch;
CreatBiTree(T->lchild);
CreatBiTree(T->rchild);
}
}
void InOrderTraverse(BiTree T)
{
if(T)
{
InOrderTraverse(T->lchild);
cout<<T->data;
InOrderTraverse(T->rchild);
}
}
int Depth(BiTree T)
{
int m,n;
if(T==NULL)
return 0;
else
{
m=Depth(T->lchild);
n=Depth(T->rchild);
if(m>n)
return(m+1);
else
return(n+1);
}
}
int main()
{
BiTree T;
cout<<"先序输入字符形成二叉树:";
CreatBiTree(T);
cout<<"二叉树的深度:"<<Depth(T)<<endl;
cout<<"中序遍历二叉树:";
InOrderTraverse(T);
}