簡體   English   中英

通過大小和路徑壓縮與聯盟進行脫節設置; 高樹可能成為矮樹的子樹嗎?

[英]Disjoint set with Union by Size and Path Compression; possible for taller tree to become subtree of shorter tree?

嗨,這是我第一次在這里發帖,

我一直試圖找出一個學習問題,但一直沒能弄清楚:

我們考慮了不相交集抽象數據類型的森林實現,以及按大小和路徑壓縮的加權聯盟。 最初,每個元素都在單節點樹中。

從上面的初始狀態開始:

  1. 給出一個(短)UNION和FIND操作序列,其中最后一個操作是一個UNION,它使一個較高的樹A成為一個較短樹B的子樹(即A的高度嚴格大於B的高度) 。

  2. 顯示最后一個UNION合並的兩個樹A和B.

提示:您可以從n = 9個元素開始,每個元素都在單節點樹中。


我不確定這是如何工作的,因為較小的樹總是與較大的樹合並,因為按大小聯合?

謝謝。

我不想回答你的作業,但是這個問題已經足夠大了,你的學期很可能結束了,無論如何,提示應該足夠了。

聯合大小和聯合高度之間存在區別,主要是因為路徑壓縮。 具體而言,路徑壓縮可以導致非常高度的節點,因此樹具有許多節點但是具有非常短的高度。 例如,這些是您可以使用帶有路徑壓縮的union find創建的兩個樹:

|T1:   o    (n=5, h=2)
|    /| |\ 
|   o o o o
|    
|T2:   o    (n=4, h=3)
|     /|
|    o o
|      |
|      o

如果下一個操作是這兩棵樹的合並,則“按排名結合”和“按高度結合”算法將選擇不同的父親。

在實踐中,通常使用“按級別結合”。 Rank是高度的上限,可以在恆定時間內更新,並產生最佳的漸近運行時間。 網絡搜索將產生該算法的許多好的解釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM