✨ C++ 写并查集算法模板 📚
大家好,今天给大家分享一个C++中实现并查集(Union-Find)算法的模板代码。并查集是一种数据结构,主要用于处理一些不相交集合的合并及查询问题。它在解决图论中的连通性问题时非常有用。下面是一个基本的并查集实现模板,包含了必要的头文件。
```cpp
include
include
include
include
using namespace std;
class UnionFind {
private:
vector
public:
UnionFind(int n) { // 构造函数,初始化并查集
parent.resize(n);
for (int i = 0; i < n; ++i)
parent[i] = i;
}
int find(int x) { // 查找根节点
if (parent[x] != x)
parent[x] = find(parent[x]);
return parent[x];
}
void unite(int x, int y) { // 合并两个集合
int rootX = find(x);
int rootY = find(y);
if (rootX != rootY)
parent[rootX] = rootY;
}
};
// 示例用法
int main() {
UnionFind uf(10); // 创建一个包含10个元素的并查集
uf.unite(1, 2); // 将节点1和2合并
uf.unite(2, 3); // 将节点2和3合并
cout << "Root of node 3 is: " << uf.find(3) << endl; // 输出节点3的根节点
return 0;
}
```
希望这个简单的模板能够帮助你在处理相关问题时更加得心应手!如果有任何疑问或需要进一步的帮助,请随时留言交流。🚀
免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。