以下のコードをインタープリターで実行し、ユニオン関数を呼び出しました
quick_find(10).union(3,4)
出力:[0, 1, 2, 4, 4, 5, 6, 7, 8, 9]
quick_find(10).union(0,4)
出力:[4, 1, 2, 3, 4, 5, 6, 7, 8, 9]
ユニオン関数を 2 回目に呼び出すと、出力リストは this になります
[4, 1, 2, 4, 4, 5, 6, 7, 8, 9]
。
しかし、代わりに出力として私に与えて[4, 1, 2, 3, 4, 5, 6, 7, 8, 9]
います。どうすれば目的の出力を取得できますか。提案してください
class quick_find:
def __init__(self,n):
self.id = [number for number in xrange(n)]
def union(self,x,y):
j = 0
elements = self.id
for i in elements:
if i == elements[x]:
elements[j] = elements[y]
j = j+1
self.id = elements
return elements