递归创建二叉树的时程序出口应在什么地方?

想递归创建一个二叉树,但试个几次都无法完成,主要不知道该怎样写函数的出口,请教哪位高手!... 想递归创建一个二叉树,但试个几次都无法完成,主要不知道该怎样写函数的出口,请教哪位高手! 展开
 我来答
wangtingfeng
2008-06-13 · 超过31用户采纳过TA的回答
知道小有建树答主
回答量:92
采纳率:0%
帮助的人:87.8万
展开全部
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**”,你试一试吧,不行,咱们再讨论,^_^
tangqiyang008
2008-06-02 · TA获得超过2152个赞
知道小有建树答主
回答量:865
采纳率:0%
帮助的人:514万
展开全部
你画一个图就可以知道了,一般是判读左孩子是否存在,右孩子是否存在,如果都不存在就到了出口,退出了一层递归。如果二者或者之一存在呢,就进行再递归
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式