求大神啊,我写的二叉树为什么能运行但不能显示结果
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct BiNode
{
char data;
struct BiNode *lchild,*rchild;
}BiNode,*BiTree;
void CreateBiTree(BiTree &T)
{
char ch;
ch=getchar();
if(ch!='\n')
{
if(ch=='#') T=NULL;
else
{
T=(BiTree)malloc(sizeof(BiNode));
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
}
}
void Xianxu(BiTree T)
{
if(T)
{
printf("%c",T->data);
Xianxu(T->lchild);
Xianxu(T->rchild);
}
}
int main()
{
BiTree T;
printf("请输入:\n");
CreateBiTree(T);
Xianxu(T);
return 0;
}
能运行,但是输入一串字符后,没结果。
在网上找了段代码运行,也是一样。
搞了好久还是没搞清楚。
[解决办法]
你输入#了吗?
比如12##3##
[解决办法]
比如说一颗二叉树 如下图结构
a
b c
# # # #
则先序遍历是 ab##c##
由于在构造二叉树的时候就是采用先序 递归,则在输入时,也要按照先序输入