平衡二叉樹你了解嗎?

2021-06-21 20:21:48 字數 1262 閱讀 8984

資料結構在自考的時候學過

,所以一些簡單的概念大概了解,但是必定考綱不一樣,所以在軟考中還是會有一些陌生的知識,現在就說一下平衡二叉樹

根據二叉樹的基本概念可想到:平衡二叉樹的左右子樹都是平衡二叉樹;除此之外,左子樹和右子樹的高度差的絕對值不能超過1

因為在二叉排序樹查詢過程中,只有樹的形態比較均勻的時候,查詢效率才能比較好,因此採用平衡二叉樹可以使得在構造二叉排序樹的時候使得其保持均勻,從而可以提高查詢效率;所以平衡二叉樹一定是二叉排序樹。

插入的情況分為四類:左子樹的左子樹插入,右子樹的右子樹插入,左子樹的右子樹插入,右子樹的左子樹插入;根據四種插入的情況,有四種調整平衡的規律,歸納如下:(1

)單向右旋

(針對於左子樹的左子樹插入結點點

)單向左旋

(針對於右子樹的右子樹插入結點

)先左後右雙向旋轉(針對於左子樹的右子樹插入結點3)

)先右後左雙向旋轉

(針對於右子樹的左子樹插入結點

平衡二叉樹的刪除同二叉排序樹的刪除是一樣的,但是需要在二叉排序樹的基礎上保持平衡。(1

)刪除葉子結點

直接刪除即可,然後進行平衡調整(2

)刪除只有乙個子樹的結點

用要刪除結點的左子樹(右子樹)代替刪除結點,直接刪除即可,然後進行平衡調整(3

)刪除有兩個子樹的結點

這種情況比較複雜,可分兩種情況進行刪除操作:

a.如果該節點的平衡因子為0或者

1,則找到其左子樹中具有最大值的節點

max(中序遍歷的直接前驅)將

max的內容與

x的內容交換,並且

max即為新的要刪除的節點

b.如果該節點的平衡因子為

-1,則找到其右節點中具有最小值的節點

min(中序遍歷的直接後繼),將

min的內容與

x的內容交換,並且

min即為新的要刪除的節點。

不要忘記刪除後要進行平衡調整。

了解平衡二叉樹

在本教程中,您將了解平衡的二叉樹及其不同型別。此外,您還將在c中找到平衡二叉樹的示例。平衡二叉樹,也稱為高度平衡二叉樹,是指任意節點左右子樹的高度相差不超過1的二叉樹。以下是高度平衡二叉樹的條件 任何節點的左子樹和右子樹之間的差異不超過乙個 左子樹是平衡的 右子樹是平衡的 c示例 checking ...

平衡二叉樹例題 平衡二叉樹

acwing 72.平衡二叉樹 思路一 求每個節點的左右子樹深度,根據深度差判斷,直到葉子節點結束,效率不夠高,每個節點都要用兩次計算深度的遞迴函式 思路二 從葉子節點開始,計算深度差,一旦有深度差大於1的,就直接返回0,也不用管上面的深度是不是正確了,畢竟我們只需要true和false兩種狀態,省...

二叉樹 平衡二叉樹

1.題目 給定乙個二叉樹,判斷這棵二叉樹是否是高度平衡的二叉樹 平衡二叉樹 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1 2.題目分析 1 如果乙個節點的兩個子樹的深度之差超過1,則不是平衡二叉樹 2 如果乙個節點的兩個子樹的深度之差不超過1,則是平衡二叉樹 3.程式分析 1 若這棵二...