二分探索ツリーの再帰関数に大きな問題があります。私のプロジェクトはあと数時間で締め切られますが、私は一生講師と連絡を取ることができません.
私の関数は、私のツリーの一番左のブランチのみをトラバースしているようです。
代入演算子:
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);
}
余談ですが、これの多くがひどく粗末なコードのように見えることは理解していますが、これは私のインストラクターが期待する方法です。
前もって感謝します。