并查集
- 并查集指的是在一个集合中的两种操作:并和查;
- 并:将集合S中的两个子集S1和S2合并;S1和S2是没有交集的;
- 查:查看集合S中的元素a是否存在于S的某个子集中;
- 并查集的初始状态:每个元素构成一个集合,所有集合之间是不相交的;
并查集涉及2个操作
- void unionElements(int p, int q) - 并
- 将元素p和元素q所在的集合合并成一个集合;
- p和q指的是元素在并查集中的位置,p和q指的元素具体是什么并不是并查集关心的,并查集关系p和q指向的元素是不是在同一个集合;
- boolean isConnected(int p, int q) - 查
- 判断p和q指向的元素是否在同一个集合;
public interface UF {
int getSize();
boolean isConnected(int p, int q);
void unionElements(int p, int q);
}