私は、二分探索木のバランスをとる方法(ブルートフォース)を実装するコードを実装しようとしていた、と私は(木の)場合があることを発見し、それはバランスをとることができないようです。ツリーには、あなたは明らかにこのツリーの右側の高さは、その左側の高さよりもはるかに大きいので、私は周りの木を左に回転させる「6」、そして新しい木がこのバイナリツリーのバランスを取ることはできますか?
10
/
6
\
8
/\
7 9
になることを見つけることができます
6
\
10
/
8
/\
7 9
です
次に、ノード「10」の周りのツリーに次の段階で、私は(背中に)右回転しなければならないので、左の高さは、その右側の高さよりもはるかに大きいことになります。
このツリーのバランスを取りながら(回転、右、左、右、左...というように)そのルートノードの周りにこのツリーを回転させる無限ループが存在しなければならないようです。このツリーのバランスをとるソリューションはありますか?
最大ヒープまたは最小ヒープを確認してください。バランスの取れたバイナリツリーを作成する方法を学ぶのに役立ちます。 – denis