0

所以我只是使用了这里提供的代码:http: //www.ics.uci.edu/~eppstein/PADS/UnionFind.py,但我遇到了一些关于代码的问题:

首先,方法iter是什么意思或做什么?

其次,假设我最初有以下代码:

set R=set(['A','B','C','D','E','F','G'])
R=UnionFind()

那么,我怎样才能执行打印、添加等集合的常规操作呢?如果我写 print R,它只会给出 < main .UnionFind instance at 0x000000000A31F048>,这显然不是我想要的。如果我写 R.add('K') (将新元素 'K' 添加到集合 R),我会得到 'AttributeError: UnionFind instance has no attribute 'add''。这是否意味着我需要为“添加”定义一个属性?这个怎么做?

如果经过几次联合操作后,我将“A”、“B”、“C”分组到同一个集合中,那么如果我想知道“A”所在的集合内的所有元素(即“A”, 'B','C'),我该怎么办?

谢谢

4

1 回答 1

1
  1. iter函数返回给定对象的迭代器。在这种情况下,其中的迭代器self.parents是 adict所以结果将是字典键上的迭代器。

  2. 鉴于该代码,我能想到的唯一响应是SyntaxError.

以下是您可以如何使用UnionFind()该类:

union_find = UnionFind()
a = 123
b = 456
c = 123
union_find.union(a, b, c)

print list(union_find)

结果将是:[456, 123]

于 2014-12-23T14:31:59.183 回答