二叉树的结点查找中,为什么是节点不存在啊,我不懂,明明先序、中序、后序以及节点总数都可以输出啊
这是查找代码:
void SearchData(char ch, BiTree T)
{
if (T == NULL)
printf("\n查找值不存在\n");
else if (T!=NULL)
{
if (T->data == ch)
{
printf("\n查找值存在,值为%d\n", T->data);
}
else if (T->data > ch)
{
SearchData(ch, T->lchild); //递归查找左子树
}
else if (T->data < ch)
{
SearchData(ch, T->rchild); //递归查找右子树
}
}
}
这是主函数:
int main()
{
char A;
BiNode M;
BiTree K=&M;
printf("请输入先序遍历的序列:\n");
CreateBiTree(&K);
printf("\n先序遍历为:\n");
PrOrderTraverse(K);
printf("\n中序遍历为:\n");
InOrderTraverse(K);
printf("\n后序遍历为:\n");
PostOrderTraverse(K);
printf("\n二叉树结点总数为:\n");
printf("%d",NodeCount(K));
printf("\n二叉树叶子结点总数为:\n");
printf("%d",LeafCount(K));
printf("\n二叉树深度为:\n");
printf("%d",Depth(K));
SearchData(A, K);
}
各位帮我解解惑,谢谢