C语言高手来。。这段二叉树的递归代码 有几个问题要问

问题一:递归一般都有结束条件。。这段代码的结束条件是什么?程序运行到最后一行就自己结束吗?问题二:虽然一次接收一个字符,但是在scanf里可以输入连续字符,scanf是怎... 问题一:递归一般都有结束条件。。这段代码的结束条件是什么?程序运行到最后一行就自己结束吗?

问题二:虽然一次接收一个字符,但是在scanf里可以输入连续字符,scanf是怎么接收的?

问题三:为什么这段代码如果不输入空格,程序会有问题,一定要输入空格,才能正确执行
为什么没有空格,表示程序还没有结束就会不停执行else部分的代码??
展开
 我来答
lwj2464129
2015-04-30 · 超过17用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:31.4万
展开全部
1、程序的结束你由输入所控制的。 这是一个先序遍历的创建树的方法。输入中必须要有空格,才会执行if中的语句,才会停止。
2、输入连续的字符时,scanf("%c", %c) 每次只读取一个字符, 包括空格字符。然后执行代码, 接着再读取一个字符。
3、 空格表示NULL结点,没有空格,表示程序还没有结束就会不停执行else部分的代码。
追问
为什么没有空格,表示程序还没有结束就会不停执行else部分的代码??
追答
在你的递归程序中, 当输入c后,就会判断c是不是空格, 是空格, 则当前结点为NULL,则退出这个函数。如果不是空格就会接着调用递归一直读取输入。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式