首页
/
每日頭條
/
生活
/
平衡二叉樹所有類型
平衡二叉樹所有類型
更新时间:2025-10-30 16:28:54

在按照二叉查找樹(二叉查找樹(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
推荐阅读
上海浦東圖書館恢複開放通知
上海浦東圖書館恢複開放通知
本周,中華藝術宮、中國航海博物館、上海科技館……浦東公共文化場館紛紛恢複開放啦!下周三(3月18日),浦東圖書館也要恢複開放啦~~一起來看詳情↓浦東圖書館恢複開放日期:3月18日第一階段開放時間:3月18日起,周一~周日,下午13:00~1...
2025-10-30
出現強迫症應該怎麼辦
出現強迫症應該怎麼辦
出現強迫症應該怎麼辦?今天有個來訪者訴說自己有比較嚴重的強迫症,自己知道不好,但是就是沒有辦法克制,下面我們就來聊聊關于出現強迫症應該怎麼辦?接下來我們就一起去了解一下吧!出現強迫症應該怎麼辦今天有個來訪者訴說自己有比較嚴重的強迫症,自己知...
2025-10-30
肉刀流貂蟬詳細出裝
肉刀流貂蟬詳細出裝
S27新賽季的峽谷:發育路回暖、遊走位加強、對抗路改變,但中路這個大舞台依舊沒有得到版本“關照”,仍保持着高風險、環境劣的現象。大家好,我是策策。就是在這種環境下,有這樣一位中單英雄一套萬血出裝,既可用于在S26賽季末尾妥妥的沖分沖段,也可...
2025-10-30
青島無錫甯波對比
青島無錫甯波對比
最近,随着各地兩會的召開,各大城市紛紛公布了未來5年的新藍圖。與青島同處在一個段位的甯波、無錫、長沙等城市亮出了經濟增長的具體目标數字。無論是目前處于領先的甯波,還是稍微有點落後的長沙,GDP目标都在2萬億之上。當然,由于疫情以及複雜的國際...
2025-10-30
瑪雅象形文字相當于表情包
瑪雅象形文字相當于表情包
文|小莊關于瑪雅的種種傳說一直讓西方探險家們躍躍欲試,18世紀七八十年代,受一些出版物的啟發,不斷有人自行跑到那片叢林中去尋找。這些活動引起了行政長官何塞·德·埃斯塔切裡亞(JosedeEstacheria)的興趣。1784年,他派遣了中尉...
2025-10-30
Copyright 2023-2025 - www.tftnews.com All Rights Reserved