У меня есть следующий рекурсивный метод для структуры данных Union-Find.Однако эта реализация дает мне ошибку рекурсии:
RecursionError: maximum recursion depth exceeded in comparison
Я не могу придумать, как преобразовать это в простой итеративный метод.Я плохо разбираюсь в рекурсивных функциях, и мне нужна помощь, чтобы найти выход из этой проблемы
def find(data, i):
if i != data[i]:
data[i] = find(data, data[i])
return data[i]
def union(data, i, j):
pi, pj = find(data, i), find(data, j)
if pi != pj:
data[pi] = pj
data = [i for i in range(15000)]
connections = [(1457,2978), (2453,9785), ....] # A huge list of tuples
for i, j in connections:
union(data, i, j)