BST のビジュアライゼーションを作成したいのですが、オンラインで見つけたすべての例は、7 つ以下の値を挿入しただけで停止します。次のシーケンスを実行しているとします。
挿入 (5)、挿入 (7)、挿入 (9)、挿入 (8)、挿入 (3)、挿入 (2)、挿入 (4)、挿入 (6)、挿入 (10)。
insert(6) までは、次のようになります。
私の主な質問は、ここからどこへ行くのですか? 一番左のリーフに追加しますか、それとも「一番下」のリーフに追加しますか?
また、ウィキペディアによると、挿入のコードは次のとおりです。
void insert(Node* node, int value) {
if (value < node->key) {
if (node->leftChild == NULL)
node->leftChild = new Node(value);
else
insert(node->leftChild, value);
} else {
if(node->rightChild == NULL)
node->rightChild = new Node(value);
else
insert(node->rightChild, value);
}
}
しかし、これによれば、私が 8 で insert(3) を取得すると、3 をノード 9 と比較するため、8 の左側に 3 が追加されます。次に、8 を比較対象のノードとして挿入を再実行し、3 を 8 の左側の子として配置します。しかし、これは一種のリストを作成するだけです。
ありがとう。