关于searchnode函数的一点解析,这里想了好长时间才转过来!
Node *Node::SearchNode(int nodeindex)
{
if(this->index==nodeindex)//查找当前节点
return this;
if(this->pLChild!=NULL)//查找左子节点
{
if(this->pLChild->index==nodeindex)
return this->pLChild;
else if (this->pLChild->SearchNode(nodeindex))
return this->pLChild->SearchNode(nodeindex);
else//查找右子节点
{
if(this->pRChild!=NULL)
{
if(this->pRChild->index==nodeindex)
return this->pRChild;
if(this->pRChild->SearchNode(nodeindex))
return this->pRChild->SearchNode(nodeindex);
}
}
}
return NULL;
}
其实最简单的方法就是仿照遍历函数,搜索只是多了一个限定条件;
这里searchnode函数的返回值是node类型;
只能有一个return null ;