递归创建二叉树的时程序出口应在什么地方?
2个回答
展开全部
void creat(btnode *&b)
{
elemtype x;
printf("请输入要建立的结点元素:");
scanf("%c",&x);
getchar();
if(x=='* ')
b=NULL;
else
{
b=(btnode *)malloc(sizeof(btnode));
b->data =x;
creat(b->lchild);
creat(b->rchild);
}
}这是前序递归方法
如果要构造成功,最后至少要输入两个‘*’,你可以先写出你要构造的二叉树的前序遍历序列,注意所有的空指针域(包括叶子节点和出度为一的结点)都写成‘*’,例如你要建a(b,c)吧,那你应输入"ab**c**”,你试一试吧,不行,咱们再讨论,^_^
{
elemtype x;
printf("请输入要建立的结点元素:");
scanf("%c",&x);
getchar();
if(x=='* ')
b=NULL;
else
{
b=(btnode *)malloc(sizeof(btnode));
b->data =x;
creat(b->lchild);
creat(b->rchild);
}
}这是前序递归方法
如果要构造成功,最后至少要输入两个‘*’,你可以先写出你要构造的二叉树的前序遍历序列,注意所有的空指针域(包括叶子节点和出度为一的结点)都写成‘*’,例如你要建a(b,c)吧,那你应输入"ab**c**”,你试一试吧,不行,咱们再讨论,^_^
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询