首页
/
每日頭條
/
生活
/
平衡二叉樹所有類型
平衡二叉樹所有類型
更新时间:2025-07-12 15:04:51

在按照二叉查找樹(二叉查找樹(BST:Binary Search Tree) )的方式插入元素構建一個平衡二叉樹(平衡二叉樹 )時,可能會出現不平衡的現象。可以根據新插入節點與最低不平衡節點之間的位置關系進行相應的調整。

我們先把需要調整的類型分為四種情況:LL型、RR型、LR型、RL型。使用圖形示例與實際代碼結合的方式對不平衡二叉樹進行旋轉。

定義一個樹節點:

平衡二叉樹所有類型(不平衡二叉樹的旋轉)1

平衡二叉樹節點定義

LL型調整

由于在y_6的左孩子(L)的左子樹(L)上插入新結點2,使原來平衡二叉樹變得不平衡,此時y_6的平衡因子由1增至2。顯然,按照大小關系,結點x_3應作為新的根結點,1和y_6兩個節點分别作為左右孩子節點才能平衡,y_6結點就好像是繞結點x_3順時針旋轉一樣。

平衡二叉樹所有類型(不平衡二叉樹的旋轉)2

LL型調整

總結一下LL型調整的一般步驟:

  1. 将y_6(新的不平衡節點)的左孩子x_3提升為新的根節點;
  2. 将原來的根節點y_6降為x_3的右孩子
  3. 各子樹按照大小關系連接(y_6的右孩子,x_3的左孩子不變,x_3的右孩子調整為y_6的左孩子)

平衡二叉樹所有類型(不平衡二叉樹的旋轉)3

LL型旋轉代碼實現

RR型調整

由于在y_2的右孩子(R)的右子樹(L)上插入新結點5,使原來平衡二叉樹變得不平衡,此時y_2的平衡因子由1增至2。顯然,按照大小關系,結點x_4應作為新的根結點,y_2和6兩個節點分别作為左右孩子節點才能平衡,y_2結點就好像是繞結點x_4逆時針旋轉一樣。

平衡二叉樹所有類型(不平衡二叉樹的旋轉)4

RR型調整

總結一下RR型調整的一般步驟:

  1. 将y_2(新的不平衡節點)的右孩子x_4提升為新的根節點;
  2. 将原來的根節點y_2降為x_4的左孩子
  3. 各子樹按照大小關系連接(y_6的左孩子,x_4的右孩子不變,x_4的左孩子調整為y_2的右孩子)

平衡二叉樹所有類型(不平衡二叉樹的旋轉)5

RR型旋轉代碼實現

LR型調整

由于在6的左孩子(L)的右子樹(R)上插入新結點3,使原來平衡二叉樹變得不平衡,此時6的平衡因子由1增至2。顯然,按照大小關系,結點x_4應作為新的根結點,y_2和6兩個節點分别作為左右孩子節點才能平衡。

平衡二叉樹所有類型(不平衡二叉樹的旋轉)6

LR型調整

總結一下LR型調整的一般步驟:

  1. 将y_2假設為新的根節點;
  2. 将以y_2為根的二叉樹進行RR型旋轉;
  3. 再對以y_6為根的二叉樹進行LL型旋轉;

平衡二叉樹所有類型(不平衡二叉樹的旋轉)7

LR型旋轉代碼實現

RL型調整

由于在2的右孩子(R)的左子樹(L)上插入新結點4,使原來平衡二叉樹變得不平衡,此時2的平衡因子由1增至2。顯然,按照大小關系,結點3應作為新的根結點,2和5兩個節點分别作為左右孩子節點才能平衡。

平衡二叉樹所有類型(不平衡二叉樹的旋轉)8

RL型調整

總結一下RL型調整的一般步驟:

  1. 将x_5假設為新的根節點;
  2. 将以x_5為根的二叉樹進行LL型旋轉;
  3. 再對以y_2為根的二叉樹進行RR型旋轉;

平衡二叉樹所有類型(不平衡二叉樹的旋轉)9

RL型旋轉代碼實現

理解好平衡二叉樹的旋轉,對後邊學習紅黑樹有非常大的幫助。下一篇文章學習,如何在構建和删除平衡二叉樹的過程中維持二叉樹一直平衡。

平衡二叉樹

如何優雅地畫好二叉樹

二叉樹遍曆的思維導圖

二叉樹的層序遍曆及應用

二叉查找樹(BST:Binary Search Tree)

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
輔食大全果泥
輔食大全果泥
寶寶4個月開始就可以逐漸添加蔬菜果泥,這類輔食添加應該重單一食材開始嘗試,逐步過渡到組合類型的輔食。例如,寶寶剛開始吃果泥輔食,選擇蘋果泥,寶寶适應不同水果泥後,可以嘗試混合水果泥。輔食的具體做法,大家可以參考以下圖文。寶寶蔬果泥添加方式可...
2025-07-12
忙不擇價什麼成語
忙不擇價什麼成語
【待賈而沽】意思是指等待善價出售,也比喻懷才待用或待時而行。亦作“待價而沽”。【近義詞】待價而沽、善賈而沽【出處】《論語·子罕》:“子貢曰:‘有美玉於斯,韫椟(yùndú)而藏諸?求善賈而沽諸?’子曰:‘沽之哉,沽之哉!我待賈者也。’”【譯...
2025-07-12
太原兩小時車程有哪些好玩的景點
太原兩小時車程有哪些好玩的景點
距離太原市僅100公裡,自然景觀絕美,兩天玩到嗨離山西省太原市100餘公裡處,有一個國家5A級旅遊風景區,在當地乃至全國知名度是非常高的,也是處在山西晉中旅遊帶上,和前面所寫文章紅崖大峽谷、石膏山風景區鼎足相立,它就是著名綿山風景旅遊名勝區...
2025-07-12
冰箱溫度調節是一檔還是七檔
冰箱溫度調節是一檔還是七檔
冰箱我們都不陌生,但是大家在使用過程中有注意過冷藏室的調溫按鈕嗎?你知道冰箱的檔位應該怎麼調節才合适嗎?很多人覺得夏天溫度高,冰箱的溫度就要調低,不然食物會變質,而冬天溫度低,冰箱的溫度就要調高,不然食物會被凍壞。但其實這種想法是錯誤的哦,...
2025-07-12
銷售管理團隊的方法和技巧課程
銷售管理團隊的方法和技巧課程
銷售,是每一家企業新人最難成長起來的崗位;也是每一家企業中最不容易形成團隊的部門。銷售團隊管理得好,就能直接給企業帶來經濟效益;管理得不好,則會讓企業損失慘重。本次分享的是「公司銷售團隊管理方法」,80頁PPT,畫面精美,可根據自身情況進行...
2025-07-12
Copyright 2023-2025 - www.tftnews.com All Rights Reserved