创建一个二叉树时关于scanf函数使用
来源:互联网 发布:石家庄seo周少鹏新浪 编辑:程序博客网 时间:2024/06/07 10:31
- 网上有不少关于二叉树遍历的博客,也几乎都用了下面的方法来进行创建一个二叉树:
- 上面的代码中主要去关心如何创建二叉树了,但并没有去释放动态申请的内存空间,但由于进程退出的时候,系统会回收资源,从而也不用担心该问题,那把关注点放到“如何创建二叉树”这个问题上来。使用这种递归的方式来创建二叉树,我们需要注意的是:
很多博客中使用上面的递归方法创建二叉树的时候,并没有使用 getchar 来对输入中的\n进行忽略。使用上面的处理后,我们每次取的都是每一行的第一个字符。就像下面那样,我们创建的二叉树只有一个根节点。
也就是说,上面创建二叉树时,并没有使用while 和 getchar 来过滤上次输入的\n回车的话,只是使用 scanf 来进行输入,则需要我们输入的房还是应该是一行输入,对应的二叉树位置上为空节点的,输入#,如下:
运行时:
- 还有另外一种输入的方法,看下面的链接,在格式控制符前面加一个空格,就能把上一次的输入中的回车符清除掉
http://zhan.renren.com/chinalee?gid=3602888497997591756&checked=true
如scanf("%d",&a)改成scanf(" %d",&a)就行了。
为什么会这样呢?我在格式控制符前面加空格能过滤回车符?可以使用其他符号吗?已经有人问过了,答案是不能,只能用空格
https://zhidao.baidu.com/question/1948602253793640788.html
因为 scanf 的双引号里面除了格式占位符(%c、%d)之外,其他的字符必须原模原样地输入,比如 scanf("%d,%d", &a, &b); 在输入的时候必须输入3,4才是正确的输入(两个数必须逗号分隔)。只有空格是例外,如果 scanf 的双引号里面有空格,空格对应的位置可以是你按空格键产生的空格,也可以是其他的非显示字符(就是在屏幕上无法显示的字符,如换行符、按Tab产生的制表符等),因此,你在输入的时候,按Enter 产生的换行可以由空格接收。
阅读全文
0 0
- 创建一个二叉树时关于scanf函数使用
- 关于scanf()函数
- 关于scanf()函数
- 关于scanf()函数
- 关于scanf函数
- 二叉树创建时的一个问题
- 关于连续使用scanf要注意的一个问题
- C语言中一个程序多次使用scanf函数
- 关于vs2013等编译器scanf函数不能使用的问题
- scanf()函数使用详解
- scanf函数的使用
- scanf()函数慎重使用
- scanf函数使用大全
- scanf 函数的使用
- scanf函数使用
- 关于scanf()的一个问题
- 关于scanf的一个问题
- scanf() 一个神奇的函数
- 重启uWSGI服务器
- 【网络流24题】软件补丁(最短路)
- H
- java数据类型
- 项目开发知识点汇总
- 创建一个二叉树时关于scanf函数使用
- 山东省高校组队训练邀请赛——AC题目(4AC:3水题,1扩展欧几里得)
- 水题笔记:noip2013 货车运输 [LCA]
- 三、servlet的简单创建
- 310. Minimum Height Trees
- uva 1328 Period(KMP循环节)
- 今日头条实习面试总结(2)
- 加入ospf area0 抓包图
- 用servlet在网页生成验证码并验证