请问高手!编程问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 08:58:47
对于一个二叉树先序遍历序列,查找第k个位置的元素。要求找到后,就结束程序而且要用递归算法。请高手指教,下面这个程序可以在改进一下吗?
TElemType preloc1(BiTree T,int &i,int k)
{
if (k<=0||!T) return NULL; //k<0或k>结点总数
if(i==k) return T->data;
i++;
TElemType m=preloc1(T->lchild,i,k,d); //查找左子树
if(m) return m;
m=preloc1(T->rchild,i,k,d); //查找右子树
return m;
}

TElemType preloc1(BiTree *T,int &i,int k)
{ TElemType m;
if (k<=0||T==NULL) return 0; //k<0或k>结点总数
if(i==k) return T->data;
i++;
m=preloc1(T->lchild,i,k); //查找左子树
if(m) return m;
else{
m=preloc1(T->rchild,i,k); //查找右子树
return m;
}
}
这个查找找元素值是不允许是0的