|
2 | 2 |
|
3 | 3 | from __future__ import annotations
|
4 | 4 |
|
| 5 | +from typing import Set |
5 | 6 |
|
6 |
| -def depth_first_search(graph: dict, start: str) -> set[int]: |
| 7 | + |
| 8 | +def depth_first_search(graph: dict, start: str) -> Set[str]: |
7 | 9 | """Depth First Search on Graph
|
8 | 10 | :param graph: directed graph in dictionary format
|
9 |
| - :param vertex: starting vertex as a string |
| 11 | + :param start: starting vertex as a string |
10 | 12 | :returns: the trace of the search
|
11 |
| - >>> G = { "A": ["B", "C", "D"], "B": ["A", "D", "E"], |
| 13 | + >>> input_G = { "A": ["B", "C", "D"], "B": ["A", "D", "E"], |
12 | 14 | ... "C": ["A", "F"], "D": ["B", "D"], "E": ["B", "F"],
|
13 | 15 | ... "F": ["C", "E", "G"], "G": ["F"] }
|
14 |
| - >>> start = "A" |
15 | 16 | >>> output_G = list({'A', 'B', 'C', 'D', 'E', 'F', 'G'})
|
16 |
| - >>> all(x in output_G for x in list(depth_first_search(G, "A"))) |
| 17 | + >>> all(x in output_G for x in list(depth_first_search(input_G, "A"))) |
17 | 18 | True
|
18 |
| - >>> all(x in output_G for x in list(depth_first_search(G, "G"))) |
| 19 | + >>> all(x in output_G for x in list(depth_first_search(input_G, "G"))) |
19 | 20 | True
|
20 | 21 | """
|
21 | 22 | explored, stack = set(start), [start]
|
|
0 commit comments