二叉树建立里面的递归调用具体是怎么实现的,来高手详细解释

voidCreateBiTree(BiTree&T){//构造二叉链表表示的二叉树T。变量Nil表示空(子)树。修改intnumber;scanf("%d",&numbe... void CreateBiTree(BiTree &T)
{
// 构造二叉链表表示的二叉树T。变量Nil表示空(子)树。修改
int number;
scanf("%d",&number); // 输入结点的值
if(number==Nil) // 结点的值为空
T=NULL;
else // 结点的值不为空
{ T=(BiTree)malloc(sizeof(BiTNode)); // 生成根结点
if(!T)
exit(OVERFLOW);
T->data=number; // 将值赋给T所指结点
CreateBiTree(T->lchild); // 递归构造左子树
CreateBiTree(T->rchild); // 递归构造右子树
//递归调用时怎么实现的,具体过程是怎样的
}
}
展开
 我来答
看不見淚痕
2014-07-24 · TA获得超过300个赞
知道小有建树答主
回答量:214
采纳率:0%
帮助的人:147万
展开全部
递归就是不断开辟栈空间保存函数的局部变量,当执行到递归出口时(即 if(number == Nil) T = NULL),函数逐层向上返回,一直到最初的调用处。你可以画一个递归调用树来理解
追问
还是不太懂,能画个图给我解释解释吗
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式