之前談過平衡二叉樹的實現原理,詳見下述例項的實現過程依此為據。
現在通過例項來分析平衡二叉樹的實現過程,以便更好的理解。
選取一組資料分別為2,1,0,3,4,5,6,9,8,7的10個結點來構造平衡二叉樹。
(1)首先資料為2的結點作為根結點插入,接著插入1,仍是平衡的,再插入0是,2的平衡因子變為2,此時出現了不平衡,因此需要進行調整,最低不平衡結點為2,屬於ll型,根據上述**的內容,則調整過程如圖1所示。
圖 1
(2)接著插入3,是平衡的,再插入4,此時出現了不平衡,結點 1 和 2 的平衡因子都為 -2,結點2為最低不平衡結點,屬於rr型,調整過程如圖2所示。
圖 2
(3)接著插入5,此時結點 1 的平衡因子為 -2,導致不平衡,結點1為最低不平衡結點,屬於rr型,調整如圖3所示。
圖 3
(4)接著插入6,此時結點4的平衡因子為 -2,導致不平衡,結點4為最低不平衡結點,屬於rr型,調整如圖4所示。
圖 4
(5)接著插入9,是平衡的,再插入8,此時結點 3、5、6 的平衡因子都為 -2,導致不平衡,結點6為最低不平衡結點,屬於rl型,調整如圖5所示。
圖 5
(6)插入7,此時結點3、5的平衡因子為 -2,導致不平衡,最低不平衡結點為5,屬於rl型,調整如圖6所示。
圖 6
python實現平衡二叉樹 平衡二叉樹python
stack depth is initialised to 0 def find in tree node,find condition,stack depth assert stack depth max stack depth deeper than max depth stack depth ...
平衡二叉樹例題 平衡二叉樹
acwing 72.平衡二叉樹 思路一 求每個節點的左右子樹深度,根據深度差判斷,直到葉子節點結束,效率不夠高,每個節點都要用兩次計算深度的遞迴函式 思路二 從葉子節點開始,計算深度差,一旦有深度差大於1的,就直接返回0,也不用管上面的深度是不是正確了,畢竟我們只需要true和false兩種狀態,省...
二叉樹 平衡二叉樹
1.題目 給定乙個二叉樹,判斷這棵二叉樹是否是高度平衡的二叉樹 平衡二叉樹 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1 2.題目分析 1 如果乙個節點的兩個子樹的深度之差超過1,則不是平衡二叉樹 2 如果乙個節點的兩個子樹的深度之差不超過1,則是平衡二叉樹 3.程式分析 1 若這棵二...