最近、取り組んでいたプロジェクトの二分探索木の実装を完了しました。うまくいき、多くのことを学びました。ただし、今は通常のバイナリ ツリーを実装する必要があります...何らかの理由で困惑しています。
InsertNode 関数を実行する方法を探しています..
通常、BSTでは、データ<ルートかどうかを確認してから左に挿入し、その逆も同様です。ただし、通常のバイナリ ツリーでは、一度に 1 レベルずつ、左から右に埋められるだけです。
特定の順序で左から右にバイナリ ツリーに新しいノードを追加する関数を実装するのを手伝ってくれる人はいますか?
BSTの挿入は次のとおりです。
void Insert(Node *& root, int data)
{
if(root == nullptr)
{
Node * NN = new Node;
root = NN;
}
else
{
if(data < root->data)
{
Insert(root->left, data);
}
else
{
Insert(root->right, data);
}
}
}