From f029b366e280764f3374439f3ea503fde7409cd6 Mon Sep 17 00:00:00 2001 From: rudrasohan Date: Mon, 11 Sep 2017 15:27:50 +0530 Subject: [PATCH] Corrected the Breadth First Search Implementation --- Graphs/Breadth_First_Search.py | 55 +++++++++------------------------- 1 file changed, 14 insertions(+), 41 deletions(-) diff --git a/Graphs/Breadth_First_Search.py b/Graphs/Breadth_First_Search.py index 1a3fdfd4d..625455e6f 100644 --- a/Graphs/Breadth_First_Search.py +++ b/Graphs/Breadth_First_Search.py @@ -1,70 +1,43 @@ class GRAPH: """docstring for GRAPH""" + def __init__(self, nodes): self.nodes=nodes self.graph=[[0]*nodes for i in range (nodes)] self.visited=[0]*nodes + self.vertex = nodes - - def show(self): - - for i in self.graph: - for j in i: - print(j, end=' ') - print(' ') def bfs(self,v): visited = [False]*self.vertex - visited[v - 1] = True - print('%d visited' % (v)) - - queue = [v - 1] + visited[v] = True + queue = [v] while len(queue) > 0: v = queue[0] + print('%d,' %v,end='') + queue.pop(0) for u in range(self.vertex): if self.graph[v][u] == 1: if visited[u]== False: visited[u] = True queue.append(u) - print('%d visited' % (u +1)) - queue.pop(0) - -g = Graph(10) - -g.add_edge(1,2) -g.add_edge(1,3) -g.add_edge(1,4) -g.add_edge(2,5) -g.add_edge(3,6) -g.add_edge(3,7) -g.add_edge(4,8) -g.add_edge(5,9) -g.add_edge(6,10) -g.bfs(4) -======= - print self.graph + + def add_edge(self, i, j): self.graph[i][j]=1 - self.graph[j][i]=1 - def bfs(self,s): - queue=[s] - self.visited[s]=1 - while len(queue)!=0: - x=queue.pop(0) - print(x) - for i in range(0,self.nodes): - if self.graph[x][i]==1 and self.visited[i]==0: - queue.append(i) - self.visited[i]=1 n=int(input("Enter the number of Nodes : ")) g=GRAPH(n) +g.vertex = n e=int(input("Enter the no of edges : ")) print("Enter the edges (u v)") for i in range(0,e): - u,v=map(int, raw_input().split()) + u,v=map(int,input().split()) g.add_edge(u,v) -s=int(input("Enter the source node :")) +s=int(input("Enter the source node : ")) +print("BFS order:") g.bfs(s) +print("") +