一个关于二叉树建立的问题

#include
using namespace std;
struct BiNode
{
char data;
BiNode *lchild, *rchild;
};

class BiTree
{
private:
BiNode *root;
public:
BiTree(){ root = creat(root); }
BiNode *creat(BiNode *bt);
void PreOrder(BiNode *bt);
};

BiNode *BiTree::creat(BiNode *bt)
{
char ch;
cin >> ch;
if (ch == '#') return;
else
{
bt = new BiNode; bt->data = ch;
bt->lchild = creat(bt->lchild);
bt->rchild = creat(bt->rchild);
}
return bt;
}

void BiTree::PreOrder(BiNode *bt)
{
if (bt == NULL) return;
else
{
cout << bt->data;
PreOrder(bt->lchild);
PreOrder(bt->rchild);
}
}

int main()
{

}

能不能问一下,这两个函数在main函数里怎么调用,比如输入“AB##C##”这样的格式

int main(){
BiTree bt;
bt.PreOrder();
}
//输入使用扩展二叉树方式按前序输入,如以下二叉树应输入AB##CD###

A

/ \
B C
/
D