int CreakBiNode(BiNode T,char ch[11],int i)
{ if(i>=1)
{
T->lchild=(BiNode)malloc(sizeof(BiNode));
T->lchild->data=ch[10-i--]; T->data=ch[10-i--];
T->lchild->lchild=NULL; T->lchild->rchild=NULL;
T->rchild==(BiNode*)malloc(sizeof(BiNode)); T=T->rchild; T->lchild=NULL;
CreakBiNode(T,ch,i);
return 1;
}
参考:感觉你的creatbinode里面参数有点问题
void creat_tree(tree &t)
{
char ch;
cin>>ch;
if(ch == '0')
{
t=NULL;
}
else
{
t = new binary_tree;
if(!t) exit(0); //如果没成功申请空间 则退出
t->data=ch;
creat_tree(t->lchild);
creat_tree(t->rchild);
}
你能先把语法错误改了吗 少个} 而且赋值改写成了 ==
你的思路感觉就是错的,创建了左孩子,然后创建右孩子,然后就不管左孩子的左孩子,直接就去创建右孩子的右孩子了