我写的这个按值来查找二叉树结点的函数,为什么返回的指针不是指向我要查找的那个结点啊?BiTree Findpoint(BiTree T,char e){if(T){if(T->ch==e){return T; }else {if(T->lchild)point(T->lchild,e);if(T->rchild )point(T->rch
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/23 12:13:21
我写的这个按值来查找二叉树结点的函数,为什么返回的指针不是指向我要查找的那个结点啊?BiTree Findpoint(BiTree T,char e){if(T){if(T->ch==e){return T; }else {if(T->lchild)point(T->lchild,e);if(T->rchild )point(T->rch
我写的这个按值来查找二叉树结点的函数,为什么返回的指针不是指向我要查找的那个结点啊?
BiTree Findpoint(BiTree T,char e)
{
if(T)
{
if(T->ch==e)
{
return T;
}
else
{
if(T->lchild)
point(T->lchild,e);
if(T->rchild )
point(T->rchild,e);
}
return NULL;
}
}
我写的这个按值来查找二叉树结点的函数,为什么返回的指针不是指向我要查找的那个结点啊?BiTree Findpoint(BiTree T,char e){if(T){if(T->ch==e){return T; }else {if(T->lchild)point(T->lchild,e);if(T->rchild )point(T->rch
首先你的返回值是NULL,所以肯定返回的不是你想要的节点;
另外你用递归找的话应该写成如下样子:
BiTree* pElemnet BiTree Findpoint(BiTree T,char e)
{
BiTree* BiTree Findpoint(BiTree T,char e)
{
if(T&&T->ch == e)
return e;
if(T==NULL)
return NULL;
if(T->lchild)
return Findpoint(T->lchild,e);
else if(T->rchild )
return Findpoint(T->rchild,e);
}