近日学习二叉树的知识,试着写了一个程序,但在创建二叉树的时候就出问题了。
在编译后运行时, 我输入前序遍历序列AB#D##C##时每输入一个字符后回车,结果输完整个序列后仍然在等待输入
经过各种试验过后发现:正确方法是输入AB#D##C##然后回车,这样就能正确输入完整的二叉树后自动结束。
或者改为
则可以一个字符一个字符地输入,出现这种问题的是因为递归时连续调用了scanf()函数,单个字符输入时回车符号会被他当成输入的字符获取到,用getchar()函数可以吸收这个'\n'避免他被下个scanf获取