首页 > 科技 >

✨ C++ 写并查集算法模板 📚

发布时间:2025-03-03 02:19:25来源:

大家好,今天给大家分享一个C++中实现并查集(Union-Find)算法的模板代码。并查集是一种数据结构,主要用于处理一些不相交集合的合并及查询问题。它在解决图论中的连通性问题时非常有用。下面是一个基本的并查集实现模板,包含了必要的头文件。

```cpp

include // 😎 对于输入输出操作

include // 📊 用于基本的数据类型定义

include // 🗂️ 向量容器,用于存储每个节点的信息

include // 🔧 算法库,用于排序和查找等操作

using namespace std;

class UnionFind {

private:

vector parent; // 每个节点的父节点

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;

}

```

希望这个简单的模板能够帮助你在处理相关问题时更加得心应手!如果有任何疑问或需要进一步的帮助,请随时留言交流。🚀

免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。