在資料結構中合併兩個 Max HBLT


合併策略使用遞迴來實現。假設 A 和 B 是要合併的兩個 HBLT。如果其中一個為空,則只需將另一個設為最終結果即可。如果沒有空 HBLT,則我們必須比較兩個根節點中的元素。元素較大的根節點將成為合併後的 HBLT 的根節點。

假設 A 的根節點較大。且其左子樹為 L。假設 C 是經過合併 A 的右子樹和 HBLT B 而得出的最大 HBLT。最終的 HBLT 將以 A 為根節點,以 L 和 C 為其子樹。如果 L 的 s 值小於 C 的 s 值,則 C 實際上就是左子樹。否則,L 將是左子樹。

假設我們有兩個元素,如下所示 −

我們要把它們合併起來。(該節點儲存值,節點外部的數字是對應節點的 s 值。)

現在讓我們看看如何合併。假設 7 被新增為 9 的右子節點,但是此處,9 的 s(L) 為 0,而 s(R) 為 1,因此它們將被交換,並且 7 將成為其右子節點。

另一個示例

暫時將較小的 HBLT 新增到較大的 HBLT 的右側。

這無法維護 HBLT 的特性,

更新於: 2020 年 8 月 11 日

231 次瀏覽

開啟你的 職業

完成課程獲得認證

開始學習
廣告