```cpp
#include<bits/stdc++.h>
using namespace std;
typedef struct Bnode{
char data;
Bnode *lch,*rch;
}Bnode,*Btree;
void CreatBtree(Btree &T)
{
char ch;
cin>>ch;
if(ch=='#') T=NULL;
else{
T=(Btree)malloc(sizeof(Bnode));
if(!T) exit(OVERFLOW);
T->data=ch;
CreatBtree(T->lch);
CreatBtree(T->rch);
}
}
void PreOrderTraverse(Btree T)
{
if(T==NULL) return ;
cout<<T->data<<' ';
PreOrderTraverse(T->lch);
PreOrderTraverse(T->rch);
}
void InOrderTraverse(Btree T)
{
if(T==NULL) return ;
InOrderTraverse(T->lch);
cout<<T->data<<' ';
InOrderTraverse(T->rch);
}
void PostOrderTraverse(Btree T)
{
if(T==NULL) return ;
PostOrderTraverse(T->lch);
PostOrderTraverse(T->rch);
cout<<T->data<<' ';
}
int main()
{
cout<<"请输入扩展二叉树的扩展前序序列"<<endl;
Btree root;
CreatBtree(root);
cout<<endl;
cout<<"树的前序为:"<<endl;
PreOrderTraverse(root);
cout<<endl;
cout<<"树的中序为:"<<endl;
InOrderTraverse(root);
cout<<endl;
cout<<"树的后序为:"<<endl;
PostOrderTraverse(root);
cout<<endl;
}