t,t1,t2在创建二叉树的时候怎么赋值

#include <bits/stdc++.h>
using namespace std;
typedef struct slnode
{
char data;
slnode *lc=NULL,*rc=NULL;
}*tree;
tree creattree(char data,tree lc=NULL,tree rc=NULL)
{
tree temp=new slnode;
temp->data=data;
temp->lc=lc;
temp->rc=rc;
return temp;
}
void print(tree rt)
{
if(rt==NULL)
return;
cout<<rt->data;
print(rt->lc);
print(rt->rc);
}
int main()
{
tree t1,t2,t;
t1=creattree('G');
t2=creattree('E',t1);
t1=creattree('D');
t2=creattree('B',t1,t2);
t1=creattree('H');
t1=creattree('F',NULL,t1);
t1=creattree('C',t1);
t=creattree('A',t2,t1);
print(t);
}