並查集(入門篇)

2021-08-08 08:38:33 字數 657 閱讀 4107

並查集是一種樹型的資料結構,用於處理一些不相交集合的合併問題。

並查集的主要操作有:

1-合併兩個不相交集合

2-判斷兩個元素是否屬於同乙個集合

3-路徑壓縮

判斷元素是否屬於同一集合:

由此用某個元素所在樹的根結點表示該元素所在的集合

判斷兩個元素時候屬於同乙個集合的時候,只需要判斷他們所在樹的根結點是否一樣即可

也就是說,當我們合併兩個集合的時候,只需要在兩個根結點之間連邊即可

路徑壓縮

上述的做法是指就是將元素的父親結點指來指去的在指,當這課樹是鏈的時候,可見判斷兩個元素是否屬於同一集合需要o(n)的時間,於是路徑壓縮產生了作用

路徑壓縮實際上是在找完根結點之後,在遞迴回來的時候順便把路徑上元素的父親指標都指向根結點

找根節點程式

int getfather (int v)

合併程式

bool union(int x,int y)

(union為保留字!!!)

判斷是否在同一集合(同一根節點)

bool judge(int x,int y)

並查集入門

簡述 其實並查集顧名思義就是有 合併集合 和 查詢集合 兩種操作的關於資料結構的一種演算法。並查集演算法不支援分割乙個集合。演算法 用集合中的某個元素來代表這個集合,該元素稱為集合的代表元。乙個集合內的所有元素組織成以代表元為根的樹形結構。對於每乙個元素 parent x 指向x在樹形結構上的父親節...

並查集入門

1.並查集是一種樹形的資料結構,顧名思義,它用於處理一些不交集的合併及查詢問題。它支援兩種操作 查詢 find 確定某個元素處於哪個子集 合併 union 將兩個子集合並成乙個集合。初始化 void makeset int size 查詢 int find int x 合併 void unionse...

並查集入門

簡述 其實並查集顧名思義就是有 合併集合 和 查詢集合 兩種操作的關於資料結構的一種演算法。並查集演算法不支援分割乙個集合。演算法 用集合中的某個元素來代表這個集合,該元素稱為集合的代表元。乙個集合內的所有元素組織成以代表元為根的樹形結構。對於每乙個元素 parent x 指向x在樹形結構上的父親節...