有人可以請用粗體解釋答案嗎?它是如何完成的?Union-Find樹上的操作?
下面是四個聯合查找操作(帶有加權聯合和完整com- 按下)的序列,導致了以下up-tree。最後兩個操作是什麼? (D,A),Union(B,C),Union(D/A,B/C),Find(B/C)。
答案:
有人可以請用粗體解釋答案嗎?它是如何完成的?Union-Find樹上的操作?
下面是四個聯合查找操作(帶有加權聯合和完整com- 按下)的序列,導致了以下up-tree。最後兩個操作是什麼? (D,A),Union(B,C),Union(D/A,B/C),Find(B/C)。
答案:
記號被使用,因爲套的。
讓我們運用四個運算:
Union(D,A)
導致以下三種:
D
/
A
Union(B,C)
導致以下三種:
B
/
C
現在Union(D/A,B/C)
意味着由於d和A屬於同一套,無所謂冷杉t參數是,它可以是D
或它可以是A
。同樣因爲B和C屬於同一組,所以第二個參數是什麼也沒關係,它可以是B
或者它可以是C
,結果將是相同的。
其結果將是第三次手術後:
D
/\
A B
\
C
現在因爲壓縮也是允許的,在Find(C)
操作會導致樹:
D
/|\
A B C
如果第四操作Find(B)
時,樹會保持不變,因爲當我們在查找操作後應用壓縮時,我們將路徑中遇到的所有節點都設置爲根的直接子節點,但由於我們不會遇到C
,我們將無法使D
的直接子C
,因爲它在最終樹中。
正確答案
四個運算的正確順序是:
Union(D,A), Union(B,C), Union(D/A,B/C),Find(C).
很棒的回答。非常感謝 –
隨時對任何查詢。 –