Untitled

 avatar
unknown
python
a year ago
1.2 kB
13
Indexable
from collections import defaultdict


class Graph:
    def __init__(self):
        self._graph_instance = defaultdict(list)

    def add_edge(self, source, target):
        self._graph_instance[source].append(target)

    def is_node_visited(self, node, visited_nodes):
        visited_nodes.add(node)
        print(node, end=' ')

        for neighbour in self._graph_instance[node]:
            if neighbour not in visited_nodes:
                self.is_node_visited(neighbour, visited_nodes)

    def depth_first_search(self, node):
        visited_nodes = set()
        self.is_node_visited(node, visited_nodes)

    def breadth_first_search(self, node):
        print("Oops, not yet implemented")

if __name__ == "__main__":
    graph = Graph()
    graph.add_edge(0, 1)
    graph.add_edge(0, 2)
    graph.add_edge(1, 2)
    graph.add_edge(2, 0)
    graph.add_edge(2, 3)
    graph.add_edge(2, 4)
    graph.add_edge(3, 2)
    graph.add_edge(3, 4)

    print("Following is depth first search starting from given vertex")
    graph.depth_first_search(2)
    
    print("\nFollowing is the breadth first search starting from given vertex:")
    graph.breadth_first_search(2)
Editor is loading...