我試圖實現代碼來實現平衡二叉搜索樹的方式(蠻力),並且我發現有一個(樹的)情況,它似乎不能平衡。樹是這個二叉樹可以平衡嗎?
6
\
10
/
8
/\
7 9
可以很明顯的發現,這個樹的右側高度比左高度大得多,所以我向左旋轉周圍的樹「6」,那麼新的樹會
10
/
6
\
8
/\
7 9
然後它變成左邊的高度比右邊的高度大得多,所以在下一步中我必須向右旋轉(返回)節點'10'周圍的樹。
在平衡此樹時,似乎必須有一個無限循環來繞着它的根節點旋轉此樹(旋轉左,右,左,右...等等)。有沒有解決這個樹的解決方案?
查看最大堆或最小堆。這可能會幫助你學習如何創建一個平衡的二叉樹。 – denis