我的二叉搜索树中的递归函数存在很大问题。我的项目将在几个小时后到期,我终生无法联系到我的导师。
我的功能似乎只遍历我树的最左边的分支。
赋值运算符:
template<typename Type>
BST<Type>& BST<Type>::operator=(const BST& that)
{
if(this != &that)
{
this->clear();
Node *c = that.root;
preORet(c);
}
return *this;
}
递归函数调用:
template<typename Type>
void BST<Type>::preORet(Node *c)
{
this->insert(c->data);
if(c->left != nullptr)
preORet(c->left);
else if(c->right != nullptr)
preORet(c->right);
}
顺便说一句,我知道其中很多可能看起来像严重的混蛋代码,但这是我的导师期望的样子。
先感谢您。