Python/sorts/topological_sort.py
VarshiniShreeV 3ceccfb59c Fixed
2024-10-27 00:21:12 +05:30

23 lines
582 B
Python

edges: dict[str, list[str]] = {
"a": ["c", "b"],
"b": ["d", "e"],
"c": [],
"d": [],
"e": [],
}
vertices: list[str] = ["a", "b", "c", "d", "e"]
def topological_sort(start: str, visited: list[str], sort: list[str]) -> list[str]:
visited.append(start)
current = start
for neighbor in edges[start]:
if neighbor not in visited:
topological_sort(neighbor, visited, sort)
sort.append(current)
return sort
if __name__ == "__main__":
sort = topological_sort("a", [], [])
sort.reverse() #Top down approach
print(sort)