diff --git a/projects/graph/graph.py b/projects/graph/graph.py index 59fecae4b..c340aa8c7 100644 --- a/projects/graph/graph.py +++ b/projects/graph/graph.py @@ -13,26 +13,37 @@ def add_vertex(self, vertex_id): """ Add a vertex to the graph. """ - pass # TODO + self.vertices[vertices_id]= set() def add_edge(self, v1, v2): """ Add a directed edge to the graph. """ - pass # TODO + if v1 in self.vertices and v2 in self.vertices: + self.vertices[v1].add(v2) def get_neighbors(self, vertex_id): """ Get all neighbors (edges) of a vertex. """ - pass # TODO + return self.vertices[vertex_id] def bft(self, starting_vertex): """ Print each vertex in breadth-first order beginning from starting_vertex. """ - pass # TODO + q = Queue() + q.enqueue(starting_vertex) + visited = set() + while q.size() > 0: + v = q.dequeue() + if v not in visited: + visited.add(v) + print(v) + for next_vertex in self.get_neighbors(v): + q.enqueue(next_vertex) + def dft(self, starting_vertex): """