學習筆記 並查集

2021-10-11 03:15:46 字數 1175 閱讀 9955

並查集主要用於解決一些元素分組的問題,管理一系列不相交的集合,支援兩種操作:

每個元素都唯一對應乙個節點;

每一組資料中的元素在同一棵樹內;

乙個組中的資料對應的樹與另一組對應的樹沒有任何聯絡;

元素在組中沒有子父級關係。

public

class

unionfind

public

data

(int e,

int p,

int w)

}private

int groupnum;

private data[

] data;

public

unionfind

(int n)

}private

void

setparent

(int i,

int p)

private

intgetparent

(int i)

private

boolean

isroot

(int i)

private

void

addweight

(int first,

int second)

private

boolean

compareweight

(int first,

int second)

public

intgetroot

(int cur)

return cur;

}public

boolean

isconnected

(int p,

int q)

public

void

union

(int firstelement,

int secondelement)

else

this

.groupnum--;}

private

void

printarr()

public

static

void

main

(string[

] args)

}

並查集學習筆記

並查集是一種用來管理資料分組狀況的資料結構,可以進行合併操作,但無法進行分割。並查集的結構 並查集也是用樹形結構來實現的,但不是二叉樹。每個資料,元素對應乙個節點,每個組對應一棵樹。並查集的實現 並查集有幾個基本操作初始化 查詢樹的根 合併x,y所屬集合 判斷x,y是否屬於同一集合。查詢是查詢樹的根...

並查集 學習筆記

並查集是由一組互不相交的集合組成的乙個集合結構,並在此集合上定義了運算union和find。即並查集中的元素本身是集合,他們是某個集合的子集,並查集是由這些集合組成的集合結構。並查集上有兩個最基本的運算,find和union。函式find搜尋給定元素i所在的子集合,並返回該自己喝 union運算將兩...

學習筆記 並查集

這是乙個可以實現合併與查詢 元素間關係判定 用來維護多集合 功能多樣化 的超牛批的可以動態維護的樹形結構。這個演算法只要是實現集合元素關係的型別都可以用到,又是線性時間複雜度,而且最關鍵的是它是個高階資料結構,翻譯過來就是這個可以動態維護,所以我覺得這個用途比單純的演算法要好,實際應用比較大,而且這...