并查集简介及构成:
并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题。合并及查询即代表"并"和"查"。
并查集由一个整数数组parent[],两个函数find和connect构成。
- parent[]数组记录每一个元素的前驱节点是什么。
- find用于查找指定元素属于哪个集合(表现形式一般为查找该元素的根节点),
- connect用于连接两个集合(表现形式一般为根节点不一样的两个元素)。
构建并查集的命名可以和上述不同。比如parent可以根据实际意义改为father,root等等。find一般不需要修改名称,因为在几乎所有的场景这个函数都代表查找的意思。connect也可以叫union等等。
并查集的主要作用是求连通分支数,比如无向图有多少连通分支,图中A和B两个顶点是否连通等。
构建并查集
【数组初始化】
一般情况数组parent初始化时将所有元素设为自己,但是也有特殊情况。比如各种岛屿包围的问题。具体情况要具体看。
对于数据是int型元素构建并查集可以使用数组,但是有时我们要为字符串等其它类型元素构建并查集,因此很多时候需要使用哈希,即unordered_map来做数组存储。