【发布时间】:2016-11-05 17:30:31
【问题描述】:
我的代码需要一些帮助。函数 findNode 位于头文件中,并在主文件中调用。如您所见,findNode 会调用自身,直到在每个节点中找到正确的数据值。实现的树类型是通用树。 我的问题是该函数确实找到了它需要找到的 TreeNode,但它错误地返回它。 main中p的数据值为空
TreeNode<Type>* findNode(Type &_data, TreeNode<Type>* _ptr)
{
if(_ptr->data == _data)
{
cout << "ptr->data: " << _ptr->showData() << endl;
return _ptr;
}
if(_ptr->children != NULL)
{
findNode(_data, _ptr->children->getHead());
}
if(_ptr->getNext() != NULL)
{
findNode(_data, _ptr->getNext());
}
}
In MAIN:
.
.
case 3:
{
string data;
cout << "****************" << endl;
cout << "***findNode()***" << endl;
cout << "Data to find: " << endl;
cin >> data;
TreeNode<string>* p = Tree->findNode(data, Tree->getRoot());
cout << "p->data = " << p->showData() << endl;
break;
}
【问题讨论】:
-
尽量避免使用大写字母。