首页
/
每日頭條
/
生活
/
平衡二叉樹所有類型
平衡二叉樹所有類型
更新时间:2024-11-18 00:19:45

在按照二叉查找樹(二叉查找樹(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
推荐阅读
濕巾紙可以帶上飛機嗎
濕巾紙可以帶上飛機嗎
濕紙巾可以帶上飛機,它不屬于違禁物品,含有的液體主要控制在100毫升以内,便可以随身攜帶上飛機,超過固定數額的濕巾紙隻能辦理托運。坐飛機時可攜帶的液體容積需要控制在100毫升以内。濕巾紙可以帶上飛機,它不屬于違禁物品,其中含有液體都比較的少,隻需将濕巾紙的液體容量控制在100毫升以内,可以随身攜帶上...
2024-11-18
電燈的發明者是誰 為什麼愛迪生發明電燈
電燈的發明者是誰 為什麼愛迪生發明電燈
電燈的發明者很多人都以為是愛迪生發明的,其實電燈最初的發明者是亨利·戈培爾、約瑟夫·威爾森·斯旺和漢弗裡·戴維,隻不過他們制造的電燈缺點很多,而愛迪生的改良讓很多家庭普遍用上了電燈。電燈的發明者是誰電燈的發明者是托馬斯·阿爾瓦·愛迪生。愛迪生不是第一個使用電來照明的人,但是是愛迪生改良了燈絲使得電燈...
2024-11-18
2023年38婦女節是法定節假日嗎 婦女節不放假是否違法有沒有三薪
2023年38婦女節是法定節假日嗎 婦女節不放假是否違法有沒有三薪
導語:一年一度的婦女節即将到來,很多女性都在期盼這天能有假期,但這天會放假嗎?2023年38婦女節是法定節假日嗎?有不少女性表示,她們每年婦女節都沒有放假,那麼,到底婦女節不放假是否違法?加班有沒有三薪呢?下面我們一起來了解婦女節的放假規定。2023年38婦女節是法定節假日嗎不是。雖然婦女節不屬于法...
2024-11-18
炒鍋哪種材質的好
炒鍋哪種材質的好
炒鍋是我們每家每戶的必備,好的鍋自然能夠更輕松的炒出好菜來,壞的炒鍋不僅炒出來的菜不香,而且也不耐用,接下來小編就來帶大家了解一下炒鍋哪種材質的好。炒鍋哪種材質的好一、炒鍋材質——不鏽鋼炒鍋不鏽鋼炒鍋不易生鏽,也不會藏污納垢,所以它也方便清洗。它的缺點是保溫效果不是那麼好,尤其是在冬季,使用不鏽鋼鍋...
2024-11-18
昂刺魚禁忌
昂刺魚禁忌
孕期女性、出血性患者、痛風患者不宜吃,是昂刺魚的幾大禁忌,孕期女性食用昂刺魚可能會加劇尿頻的症狀,出血性患者食用昂刺魚可能會誘發疾病,嚴重時還會導緻病情加重。而痛風患者食用昂刺魚會引起尿酸增加,從而誘發或加重痛風症狀。1、孕期女性孕期女性是昂刺魚的禁忌之一,處于孕期的女性建議少吃或不吃昂刺魚,因為孕...
2024-11-18
Copyright 2023-2024 - www.tftnews.com All Rights Reserved