[issue17005] Add a topological sort algorithm
Eric V. Smith
report at bugs.python.org
Fri Jan 18 16:39:45 EST 2019
Eric V. Smith <eric at trueblade.com> added the comment:
This is why I prefer the API exposed by https://pypi.org/project/toposort/
list(toposort({2: {11},
9: {11, 8, 10},
10: {11, 3},
11: {7, 5},
8: {7, 3},
}))
returns [{3, 5, 7}, {8, 11}, {2, 10}, {9}]
For an node with no edges, use an empty set:
list(toposort({100: set(),
2: {11},
9: {11, 8, 10},
10: {11, 3},
11: {7, 5},
8: {7, 3},
}))
[{3, 100, 5, 7}, {8, 11}, {2, 10}, {9}]
I also don't think we should provide multiple APIs. Let's just provide one, and recipes for any helpers, if needed. For example, to flatten the result into a list. Or to take a list of edges as the input.
----------
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue17005>
_______________________________________
More information about the Python-bugs-list
mailing list