一个爸爸和儿子的故事 并查集相关内容
一个父亲和儿子的故事 并查集相关内容
并查集是一种树型的数据结构,用于处理一些不相交集合的合并问题。
并查集的主要操作有
1-合并两个不相交集合
2-判断两个元素是否属于同一个集合
并查集是一种树型的数据结构,用于处理一些不相交集合的合并问题。
并查集的主要操作有
1-合并两个不相交集合
2-判断两个元素是否属于同一个集合
贴别鸣谢德翔同学提供该算法模板!
#include <iostream> #include <map> using namespace std; int father[1000]; int search_father(int tar) //查 { int result=tar; while(result!=father[result]) //是否根节点 { result=father[result]; //不是,建立根节点 } return result; //是,直接返回 } void combine_tree(int a,int b) //并 { int fx=search_father(a); int fy=search_father(b); if(fx!=fy) father[fx]=fy;//合并父节点 } int main() { for(int i=0;i<10;i++) { father[i]=i; } for(int i=0;i<10;i++) { cout<<father[i]<<" "; } cout<<endl; int a,b; cin>>a>>b; combine_tree(a,b); for(int i=0;i<10;i++) { cout<<father[i]<<" "; } cout<<endl; return 0; }