问题描述
- 请问这个生成二叉树的递归函数错在哪里
-
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);
}
解决方案二:
你能先把语法错误改了吗 少个} 而且赋值改写成了 ==
解决方案三:
你的思路感觉就是错的,创建了左孩子,然后创建右孩子,然后就不管左孩子的左孩子,直接就去创建右孩子的右孩子了
时间: 2024-09-09 02:12:27