Skip to content

Instantly share code, notes, and snippets.

@okaysidd
Created June 16, 2020 19:46
Show Gist options
  • Save okaysidd/0f016b631ed769765ba803df5eea4675 to your computer and use it in GitHub Desktop.
Save okaysidd/0f016b631ed769765ba803df5eea4675 to your computer and use it in GitHub Desktop.
def Topological_sort(adj):
result = []
def dfs_visit(node):
for neighbor in adj[node]:
if neighbor not in seen:
seen.add(neighbor)
dfs_visit(neighbor)
result.insert(0, node) # insert to beginning of list
seen = set()
values = []
[values.extend(v) for v in adj.values()]
for node in adj:
if node not in values:
if node not in seen:
dfs_visit(node)
return result
adj = {'A':['B','D'], 'B':['C','D'], 'C':[], 'D':['E'], 'E':[]}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment