指针的引用未生效
我用visual stuido 2010 写下面二叉树的查找程序,
目的是使类中pCurrent指 针指向匹配的节点(Node<T>*),同时能发现父节点。
template<class T>
Node<T>* Tree<T>::FindNode_BSTree(Node<T>* & pNode, const T& datavalue, Node<T>* & pParent) const
{
if(pNode==NULL)
return NULL;
if(pNode->data==datavalue)
return pNode;
if(datavalue<pNode->data)
return FindNode_BSTree(pNode->pLeftChild,datavalue,pNode);
else
return FindNode_BSTree(pNode->pRightChild,datavalue,pNode);
};
查找匹配节点程序:
template<class T>
bool Tree<T>::Find_BSTree(const T& datavalue)
{
Node<T>* pParent=NULL;
FindNode_BSTree(pCurrent,datavalue,pParent);
};
查找匹配节点父节点的程序:
template<class T>
Tree<T>* Tree<T>::GetParent()
{
Node<T>* pParent=NULL;
FindNode_BSTree(pCurrent,pCurrent->data,pParent);
};
按理说,指针的引用传递参数,外层实参指针随着形参改变而改变指向的位置。
结果,最后一打印pCurrent,pParent的值,还是原来的初始值,没有改变。很是奇怪。是编译器的问题还是程序的问题?