一个父亲和儿子的故事   并查集相关内容

来源:互联网 发布:c语言编程图形 编辑:程序博客网 时间:2024/04/27 19:00
并查集是一种树型的数据结构,用于处理一些不相交集合的合并问题。
并查集的主要操作有
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;}