/*
名称:求先序遍历中第k个结点的值
说明:在本程序中,k和val都是以引用的形式传递参数的,为的就是能够在递归函数中传递信息(包括传递给递归子函数,和从递归子函数中带回信息)。关于递归函数之间传递信息,过几天会做一个总结。
*/
//求先序遍历中第k个结点的值(val作为返回值)
void FindKth(BiTree T,int &k,int &val)
{
if(val != 0) //val作为返回值,同时也作为标志位,即val不为零时,需要继续递归遍历
{
return ;
}
else if(T != NULL)
{
--k; //k值减1
if(0 == k)
{
val = T->data;
}
FindKth(T->lchild,k,val); //递归左子树
FindKth(T->rchild,k,val); //递归右子树
}
}