二叉树的查找节点,怎么都是不存在啊,求解惑

二叉树的结点查找中,为什么是节点不存在啊,我不懂,明明先序、中序、后序以及节点总数都可以输出啊

这是查找代码:
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);
}

各位帮我解解惑,谢谢

你要确保你创建的二叉树是严格左小右大,即二叉搜索树