題組內容
四、我們想設計一個動態資料結構儲存數字集合 S ={0, 1, 2, …, n – 1}的倆倆沒有交
集,而且聯集等於 S 的子集合。初始時有 n 個元素,個數為 1 的子集合,分別為
{0}, {1}, …, {n – 1}。我們希望這個資料結構可以支援以下兩個功能:
union(x, y): x, y ∈ S。union(x, y)將包含 x 的子集合與包含 y 的子集合聯集得到
一個新的子集合,原來的子集合不再存在。
equivalence(x, y): x, y ∈ S。equivalence(x, y)判斷 x 與 y 是否屬於同一個子集合,
若屬於同一個子集合,則回傳 “TRUE”,否則回傳 “FALSE”。
上述兩個函式必須能夠依任何順序交替執行。