次の(奇妙な)方法で二分探索木を作成する必要があります。
配列 (A[n]) が与えられます。A[1] がツリーのルートになります。
次に、ルートの左側のサブツリー (subtree1、以下で使用) に A[1]+A[2] を挿入し、ルートの右側のサブツリー (subtree2) に A[1]-A[2] を挿入します。
A[1]+A[2]+A[3] を subtree1 (subtree3) の左側のサブツリーに挿入し、A[1]+A[2]-A[3] を subtree1 (subtree4) の右側のサブツリーに挿入します。
次に、A[1]-A[2]+A[3] を subtree2 の左側のサブツリー (subtree5) に挿入し、A[1]-A[2]-A[3] を subtree2 の右側のサブツリー (subtree6) に挿入します。 )。
配列の最後に到達するまで、subtree3、subtree4、subtree5、subtree6 について繰り返します。
したがって、基本的に、配列の最初の要素がツリーのルートになり、次に下に移動します。すべての左側のサブツリーには、その親と配列の次の要素の合計が値として含まれ、すべての右側のサブツリーには、次の値の差がありますその親および配列内の次の要素の。
再帰の概念を使用する必要があることは理解していますが、変更された方法で使用します。ここに私の問題を入力して、私の脳以外の誰かに説明しようとすると、実際に試してみるべきいくつかのアイデアが得られるような方法でそれを形成しましたが、私が扱っている問題は通常の問題であることがわかります。再帰を使用してツリーを構築する方法について、いくつかのヒントを教えてください。
他の質問や議論を見回してみると、全体的な解決策を求めることに対するポリシーがあることがわかっているので、解決策を求めているのではなく、それへのガイダンスを求めていることを明確にしたいと思いました. 誰かが見たいと思ったら、私がすでに行ったことをあなたに見せることができます.