Données: une liste de dépendances, déjà vérifiée pour être acyclique. Voici donc, 'a' dépend 'b', 'c' (c dépend d), etc ...Tri topologique, récursif, utilisant des générateurs
A = { 'a' : dict(b=1, c=1),
'c' : dict(d=1),
'd' : dict(e=1,f=1,g=1),
'h' : dict(j=1)
}
Je voudrais avoir un haut vers le bas, la solution récursive pour disons, trouver la chaîne à partir de 'a': a, c, d, e, g, f, b
Ainsi, en ce moment (une solution non générateur):
def get_all(D,k):
L = []
def get2(D,k):
L.append(k)
for ii in D.get(k,[]):
get2(D, ii)
get2(D,k)
return L
de toute évidence, cela est assez faible :) Je me suis cogné la tête sur la façon d'obtenir des rendements à l'intérieur, et j'apprécierais tout py-foo y'all peut apporter à cela.
Merci! Je n'ai clairement pas eu assez de café ce matin. –
Pas de problèmes :-) Peut-être que c'est le cas que j'ai pris trop de café aujourd'hui: P – freespace
Quelqu'un at-il dit café? :) Bonne réponse, espace libre. –