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