def main(): pokemon = open("pokemon.txt").readlines() evolutions = open("evolutions.txt").readlines() inngrader = {} naboer = {} for p in pokemon: navn = p.strip() inngrader[navn] = 0 naboer[navn] = [] for e in evolutions: kobling = e.rstrip().split() naboer[kobling[0]].append(kobling[1]) inngrader[kobling[1]] += 1 stack = [] output = [] for p, i in inngrader.items(): if i == 0: stack.insert(0, p) while len(stack) > 0: poke = stack.pop(0) output.append(poke) for ut in naboer[poke]: inngrader[ut] -= 1 if inngrader[ut] == 0: stack.insert(0, ut) if len(output) < len(inngrader): print("Grafen inneholder en sykel, den kan derfor ikke topologisk sorteres.") else: print(output) main()