Code Bye

二叉树链式存储结构

如题所示,
//定义二叉树的结点
typedef struct _BINARY_TREE_NODE{
int data;
struct _BINARY_TREE_NODE *left;
struct _BINARY_TREE_NODE *right;

}BinaryTree;
//创建二叉树,并初始化
BinaryTree *Create(BinaryTree *tree){
char ch;
ch=getchar();
if(ch==”0″){
return NULL;
}
tree=(BinaryTree*)malloc(sizeof(BinaryTree));
tree->data=ch;
tree->left=Create(tree->left);
tree->right=Create(tree->right);
return tree;
}
问题是,在main函数中调用Create()函数时,假如本人先输入一个1,
当程序执行到tree->left时,输入0,执行到tree->right时,输入0,程序为什么没有结束?
还在提醒本人输入呢?命令行窗口如下:

解决方案

10

回车没处理掉?

20

代码功能归根结底不是别人帮本人看或讲解或注释出来的;而是被本人静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生本人领悟和上厕所!
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明二叉树链式存储结构