并查集三种操作揭秘:查找、合并与初始化及 C++ 代码实现要点
以下是并查集常见的三种操作及示例代码(使用 C++语言): ```cpp #include <iostream> using namespace std; // 查找根节点 int find(int parent[], int i) { // 如果当前节点不是根节点,递归查找根节点 if (parent[i]!= i) { parent[i] = find(parent, parent[i]); } return parent[i]; } // 合并两个集合 void unionSet(int parent[], int x, int y) { int xRoot = find(parent, x); int yRoot = find(parent, y); parent[xRoot] = yRoot; } // 初始化并查集 void makeSet(int parent[], int n) { for (int i = 0; i < n; i++) { parent[i] = i; } } int main() { int parent[10]; makeSet(parent, 10); unionSet(parent, 0, 1); unionSet(parent, 1, 2); int root = find(parent, 0); cout << "Root of 0 is: " << root << endl; return 0; } ``` 对于这段代码,需要注意以下 3 点逻辑: 1. 在查找根节点时,要通过递归确保找到最终的根节点,避免错误的合并。 2. 合并操作时,要确保将一个集合的根节点指向另一个集合的根节点。 3. 初始化操作要将每个元素都初始化为自身,形成独立的集合。 ######[AI写代码神器 | 365点数解答 | 2024-12-11 20:52:57]
- Python实现Q老师成绩管理任务:修改与查看学生成绩(字节豆包 | 191点数解答 | 2025-12-20 20:55:41)102
- Python 代码助力 Q 老师高效管理班级学生成绩:修改与查看一键搞定(字节豆包 | 326点数解答 | 2025-12-27 20:48:12)108
- C++实现顺序存储结构基本操作:初始化、插入、删除等全解析(GPT | 1743点数解答 | 2024-09-26 00:20:17)298
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)380
- 工程师必知:软件系统用户文档编写九大要点揭秘(百度文心 | 350点数解答 | 2023-11-09 18:23:53)215
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)350
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)497
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)386
- C语言实现顺序表基本功能:建表、初始化、销毁等全解析( | 1665点数解答 | 2024-03-21 16:21:47)272
- C语言数据结构:顺序表基本功能(建表、增删查等)实现代码解析( | 2210点数解答 | 2024-03-21 16:53:28)260
- C 语言实现单链表全功能操作:创建、增删查改与逆置测试( | 4796点数解答 | 2024-03-28 16:24:20)355
- Java 类 A 实现数据封装与操作:构造、方法调用及测试全解析(字节豆包 | 441点数解答 | 2024-12-04 10:35:13)341