def __init__(self, graph: dict[str, list[str]], source_vertex: str) -> None:
        self.graph = graph
        # mapping node to its parent in resulting breadth first tree
        self.parent: dict[str, str | None] = {}
        self.source_vertex = source_vertex