From 8d50900eaa999e1cd7c6eb2eca5b6527d9a413e8 Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Thu, 20 Aug 2026 21:40:23 -0400 Subject: [PATCH] Remove solution; revert later after going over the topic --- .../2026.08.27/topological_sort_solution.py | 47 ------------------- 1 file changed, 47 deletions(-) delete mode 100644 notes-and-examples/2026.08.27/topological_sort_solution.py diff --git a/notes-and-examples/2026.08.27/topological_sort_solution.py b/notes-and-examples/2026.08.27/topological_sort_solution.py deleted file mode 100644 index e5b21c7..0000000 --- a/notes-and-examples/2026.08.27/topological_sort_solution.py +++ /dev/null @@ -1,47 +0,0 @@ -from collections import deque - -# This is a solution which uses DFS to trace the paths; there -# are other solutions as well - -classes = { - 'CPSC 230': {'CPSC 231'}, - 'CPSC 231': {'CPSC 350', 'CPSC 330'}, - 'CPSC 350': {'CPSC 380', 'CPSC 408', 'CPSC 406'}, - 'CPSC 330': {'CPSC 351'}, - 'CPSC 351': set(), - 'ENGR 101': set(), - 'CPSC 380': set(), - 'CPSC 406': set(), - 'CPSC 408': set() -} - - -def topological_sort(adjacency_list: dict[str, set[str]]): - result = deque() - visited = set() - - def dfs(current: str, visited_in_traversal=None): - if visited_in_traversal is None: - visited_in_traversal = set() - if current in visited: - return - if current in visited_in_traversal: - raise ValueError("Graph has a cycle") - - visited_in_traversal.add(current) - - for neighbor in adjacency_list[current]: - dfs(neighbor, visited_in_traversal) - - # to trace the reverse path, use .append - result.appendleft(current) - visited.add(current) - - for node in adjacency_list.keys(): - if node not in visited: - dfs(node) - - return result - - -print(topological_sort(classes))