平衡二叉樹的旋轉操作

2021-09-13 03:59:10 字數 789 閱讀 3978

平衡二叉樹的定義:

任意的左右子樹高度差的絕對值不超過1,將這樣的二叉樹稱為平衡二叉樹,

二叉平衡樹前提是乙個二叉排序樹。

(1)ll:插入乙個新節點到根節點的左子樹(left)的左子樹(left),導致根節點的平衡因子由1變為2

(2)rr:插入乙個新節點到根節點的右子樹(right)的右子樹(right),導致根節點的平衡因子由-1變為-2

(3)lr:插入乙個新節點到根節點的左子樹(left)的右子樹(right),導致根節點的平衡因子由1變為2

(4)rl:插入乙個新節點到根節點的右子樹(right)的左子樹(left),導致根節點的平衡因子由-1變為-2

針對四種種情況可能導致的不平衡,可以通過旋轉使之變平衡。有兩種基本的旋**

(1)左旋**將根節點旋轉到(根節點的)右孩子的左孩子位置

(2)右旋**將根節點旋轉到(根節點的)左孩子的右孩子位置

平衡二叉樹的插入:

二叉平衡樹在插入或刪除乙個結點時,先檢查該操作是否導致了樹的不平衡,若是,則在該路徑上查詢最小的不平衡樹,調節其平衡。

4種平衡調整如下(

結點的數字僅作標記作用):

①ll:右單旋轉

②rr:左單旋轉

③lr平衡旋**先左後右

④rl平衡旋**先右後左

平衡二叉樹查詢:

平衡二叉樹查詢過程等同於二叉排序樹相同,因此平衡二叉樹查詢長度不超過數的長度,及其平均查詢長度為o(log

2n)。

平衡二叉樹(樹的旋轉)

平衡二叉樹建立在二叉排序樹的基礎上,目的是使二叉排序樹的平均查詢長度更小,即讓各結點的深度盡可能小,因此,樹中每個結點的兩棵子樹的深度不要偏差太大。平衡二叉樹的遞迴定義 平衡二叉樹是一棵二叉樹,其可以為空,或滿足如下2個性質 左右子樹深度之差的絕對值不大於1。左右子樹都是平衡二叉樹。平衡因子的概念 ...

平衡二叉樹(樹的旋轉)

平衡二叉樹建立在二叉排序樹的基礎上,目的是使二叉排序樹的平均查詢長度更小,即讓各結點的深度盡可能小,因此,樹中每個結點的兩棵子樹的深度不要偏差太大。平衡二叉樹的遞迴定義 平衡二叉樹是一棵二叉樹,其可以為空,或滿足如下2個性質 左右子樹深度之差的絕對值不大於1。左右子樹都是平衡二叉樹。平衡因子的概念 ...

二叉平衡樹的旋轉操作

旋轉是很多二叉平衡樹維持平衡的主要手段,在這裡複習一下。其實旋轉過程中節點位置的變化只要遵循乙個原則就行了 比root小的在左子樹,比root大的在右子樹。當然這裡前提條件是左小右大 情況一 插入f節點導致失衡 這裡失衡的是a的左右子樹,很容易就可以想到旋轉b a鏈,值得注意的是e節點,它原先在b的...