Прошу помочь в решении задачи.
Входные данные: несколько графов, заданных в виде словаря отношений вида {потомок:родитель} между объектами. Например:
{1:2,2:3,4:3,3:None,6:5,5:None,7:None}
[[1,2,3,4],[6,5],[7]]
Подскажите, господа, что мне сделать, чтобы она решала более сложные варианты?
def MakeBranches(a): q=[] for i in a: q.append([i]) if a[i] != None: q[-1].extend(a[i]) d=[] for i in q: for j in q: if set(i).intersection(set(j)) != set(): i.extend(j) d.append(set(i)) b=[] for i in d: if b.count(i)==0 b.append(i) for i in range(0,len(b)): b[i]=list(b[i]) return b