diff --git a/notes-and-examples/2026.07.21/main.py b/notes-and-examples/2026.07.21/main.py index d549379..b145596 100644 --- a/notes-and-examples/2026.07.21/main.py +++ b/notes-and-examples/2026.07.21/main.py @@ -1,24 +1,33 @@ # Adjacency list first_graph = { - 1: [3, 20], + 1: [3, 20, 4, 5, 6], 2: [20], 3: [1, 20], - 20: [2, 3] + 20: [2, 3], + 4: [1], + 5: [1], + 6: [1] } # First exercise: go from 1, to 20, to 2 first_graph[first_graph[1][1]][0] # pass visited by reference -def depth_first_search(graph: dict, start, visited=set()): - print(start) +def depth_first_search(graph: dict, start, visited=set(), traversal=list()): + if start in visited: + return + + visited.add(start) + traversal.append(start) if len(visited)==len(graph): - return visited + return for x in graph[start]: - if x not in visited: - visited.add(x) - return depth_first_search(graph, x, visited) + depth_first_search(graph, x, visited, traversal) -depth_first_search(first_graph, 1) +visited = set() +traversal = list() +depth_first_search(first_graph, 1, visited, traversal) +print("Visited:", visited) +print("Traversal:", traversal)