摘要: 作者:Dong | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址:http://dongxicheng.org/structure/union-find-set/1、 概述并查集(Disjoint set或者Union-find set)是一种树型的数据结构,常用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。2、 基本操作并查集是一种非常简单的数据结构,它主要涉及两个基本操作,分别为:A. 合并两个不相交集合B. 判断两个元素是否属于同一个集合(1) 合并两个不相交集合(Union(x,y))合并操作很简单:先设置一个数组Father[x],表示 阅读全文
posted @ 2012-07-04 21:53 _雨 阅读(216) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1308题目要求是判断是不是为一棵树主要看是否满足2个条件共有n个不同的数 也就是n个节点1 有n-1个入度 去除根节点 一个节点只有一个入度2 不能有环 就是单方向的其实只要判断条件1就可以 了 只要是环肯定不会为n-1个入度 所以只判断第一个条件就好代码如下 用a[]判断节点的入度是否唯一 用K来计算总入度是否为n-1用b[]来判断n的值为几这个题还要注意一点 0 0是空树 也是树View Code 1 #include <stdio.h> 2 #include<string.h> 3 int main() 4 { 阅读全文
posted @ 2012-07-04 21:51 _雨 阅读(267) 评论(0) 推荐(0) 编辑