Example #1
0
class BFS:
    def __init__(self, node, graph):
        self.src = 0
        self.visited = []
        self.node = node
        self.graph = graph
        self.queue = Queue()
        self.dis = Queue()
        for i in range(node):
            self.visited.append(0)

    def bfs(self, node):
        self.src = node
        self.queue.enqueue(node)
        self.dis.enqueue(0)
        #self.visit(node)
        while not self.queue.isEmpty():
            temp = self.queue.Back()
            if self.visited[temp] == 0:
                self.visit(temp)
                for i in self.graph.g[temp]:
                    self.queue.enqueue(i)
                    self.dis.enqueue(self.dis.Back() + 1)
            self.queue.dequeue()
            self.dis.dequeue()

    def visit(self, node):
        print("node : ", node, " dis from ", self.src, " is : ",
              self.dis.Back())
        self.visited[node] = 1