ノードといくつかのレベルを備えた 2 ~ 3 個のツリーが与えられたとします。結果のツリーを提供するいくつかの可能な挿入順序/シーケンスの 1 つをどのように見つけることができますか?
コードは必要ありません。紙のタスクだけです。単純な試行錯誤のケースではないことは確かです (祈っています)。
こちらでも同様の質問がありましたが、回答がありませんでした
ノードといくつかのレベルを備えた 2 ~ 3 個のツリーが与えられたとします。結果のツリーを提供するいくつかの可能な挿入順序/シーケンスの 1 つをどのように見つけることができますか?
コードは必要ありません。紙のタスクだけです。単純な試行錯誤のケースではないことは確かです (祈っています)。
こちらでも同様の質問がありましたが、回答がありませんでした
私はこの主題に不慣れですが、私はそれを試してみます.
私たちがしなければならないことは、一歩後退する方法を見つけることだけです。つまり、最後に追加された可能性のある値を選択し、前のツリーが何であったに違いないかを推測します。
葉に新しい値が追加されます。リーフに 1 つの値があった (現在は 2 つある) か、2 つの値があり、新しい値によって分割が発生したかのいずれかです。分割は、3 ノードまたは新しいルート 2 ノードの作成によって停止するまで、ツリーを上方向に伝播します。
そこで、最後に追加された可能性のある値を選択する方法を次に示します。ツリーに 2 つの値を持つノードがある場合は、最も低いノードの 1 つを選択します。そのノードのいずれかの値が最後の値である可能性があります。ツリーに 2 つの値を持つノードがない場合、ツリーのどの値でも 、ルート ノードの値が最後のノードである必要があります。
(これは網羅的ではありません。他の可能性もありますが、すべての候補ではなく、候補を見つけようとしています。)
値を選択したら、葉に分割解除して削除するのは非常に簡単です。
それで十分ですか、それとももっと詳しく説明する必要がありますか?