主题:二叉树递归查找元素
BiTree Search(BiTree *bt,elemtype x)
{
BiTree p;
p=bt;
if(p->data==x) return p;
if(p->Lchild!=null)
return(Search(p->Lchild,x));......//这句
书上说在 p->Lchild为根结点指针的二叉树可查找数据
元素。 可是要是找不到,就一直return null;不会
执行下句的右子树里查找了?如果找的元素在右子树,
那就找不到了,到底是不是这样??
if(p->Rchild!=null))
return(Search(p->Rchild,x));
return null;
}
这个算法到底能不能找出要找的元素,假如要找的数据元素在某个节点的右孩子节点上???
{
BiTree p;
p=bt;
if(p->data==x) return p;
if(p->Lchild!=null)
return(Search(p->Lchild,x));......//这句
书上说在 p->Lchild为根结点指针的二叉树可查找数据
元素。 可是要是找不到,就一直return null;不会
执行下句的右子树里查找了?如果找的元素在右子树,
那就找不到了,到底是不是这样??
if(p->Rchild!=null))
return(Search(p->Rchild,x));
return null;
}
这个算法到底能不能找出要找的元素,假如要找的数据元素在某个节点的右孩子节点上???