?? ufset.h
字號:
#ifndef UFSET_H
#define UFSET_H
/*
并查集 (Union-Find Sets) 是一種簡單而用途廣泛的高級數據結構。
并查集可以描述這樣一個邏輯結構:有若干個元素,將其分成若干個不相交的集合,每個集合相互獨立。使用并查集可以方便地進行以下兩種操作:
1、 判斷兩個元素是否屬于同一個集合。
2、 合并兩個元素所在的集合。
并查集機構的儲存結構為一棵采用雙親表示法的樹,通常用數組來儲存。一般應用中每個元素還有一個權值:
*/
typedef struct UFSet
{
int parent;
int rank;
}UFSet;
//其中father為正數時表示該節點的父節點下標,為負數時表示該節點為一個根節點,其絕對值為該集合包含的節點總數。
//rank表示權值,在不同問題中有不同的含義。
//對于并查集,主要有以下四種操作
Status InitUFSet(UFSet* set,int n);
//初始化并查集
int UFSetFind(UFSet* set,int x);
//初始條件:存在并查集set,和要查找的元素x,x一定在某個集合中
//操作結果:返回該元素所屬于的集合
int Union(UFSet* set,int a,int b);
//初始條件:存在并查集set,集合a,集合b
//操作結果:合并集合a,b
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -