1: 0 0 空树是一棵树 2: 1 1 0 0 不是树 不能自己指向自己 3: 1 2 1 2 0 0 不是树....自己开始一直在这么WA 好郁闷 重复都不行呀~~5555 4: 1 2 2 3 4 5 不是树 森林不算是树(主要是注意自己) 5: 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 1 注意 一个节点在指向自己的父亲或祖先 都是错误的 即 9-->1 错 6: 1 2 2 1 0 0 也是错误的
并查集
算法需要以下几个子过程:(1) 开始时,为每个人建立一个集合SUB-Make-Set(x);(2) 得到一个关系后a,b,合并相应集合SUB-Union(a,b);(3) 此外我们还需要判断两个人是否在同一个 集合中,这就涉及到如何标识集合的问题。我们可以在每个集合中选一个代表标识集合,因此我们需要一个子过程给出每个集合的代表元SUB-Find-Set(a)。于是判断两个人是否在同一个集合中,即两个人是否为亲戚,等价于判断SUB-Find-Set(a)=SUB-Find-Set(b)。