C语言 二叉树的建立

为什么可以用scanf("%c"),这个语句一次输入完呢?%c格式不是只能读取到一个字符吗?求教一下这是怎么给各个节点赋值的?部分代码如下:#include<stdio.... 为什么 可以用scanf("%c" ), 这个语句一次输入完呢? %c格式不是只能读取到一个字符吗? 求教一下这是怎么给各个节点赋值的?部分代码如下:#include <stdio.h>#include <stdlib.h>typedef struct treenode{ char data; struct treenode *l; struct treenode *r;}TreeNode;//使用先序遍历创建二叉树TreeNode * CreateTree(){ char ch; TreeNode *p;// printf("请按先序输入该序列:"); scanf("%c",&ch); if(ch!='#') { p=(TreeNode *)malloc(sizeof(TreeNode)); p->data=ch; p->l=CreateTree(); p->r=CreateTree(); } else p=NULL; return p; } 展开
 我来答
丿艾瑞灬莉娅
2018-04-26 · TA获得超过916个赞
知道小有建树答主
回答量:926
采纳率:78%
帮助的人:432万
展开全部
从键盘输入字符,然后回车,字符会停留在缓冲区内,之后你每次scanf("%c", &ch)就会从缓冲区取出一个来
匿名用户
推荐于2018-04-27
展开全部
关键在这行 if(ch!='#') 如果不等于'#'就继续输入它的左子树和右子树。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-07-19
展开全部
char 也是可以当数字来用的呀 。。。。。。。。
追问
这个程序没用数字赋值啊。 用的就是字母。我问的是这个scanf语句在递归中是怎么逐个给各个节点赋值的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式