File tree Expand file tree Collapse file tree 2 files changed +57
-68
lines changed Expand file tree Collapse file tree 2 files changed +57
-68
lines changed Original file line number Diff line number Diff line change 1- class Graph :
1+ class GRAPH :
2+ """docstring for GRAPH"""
3+ def __init__ (self , nodes ):
4+ self .nodes = nodes
5+ self .graph = [[0 ]* nodes for i in range (nodes )]
6+ self .visited = [0 ]* nodes
27
3- def __init__ (self , vertex ):
4- self .vertex = vertex
5- self .graph = [[0 ] * vertex for i in range (vertex ) ]
6-
7- def add_edge (self , u , v ):
8- self .graph [u - 1 ][v - 1 ] = 1
9- self .graph [v - 1 ][u - 1 ] = 1
108
119 def show (self ):
12-
13- for i in self .graph :
14- for j in i :
15- print (j , end = ' ' )
16- print (' ' )
17- def bfs (self ,v ):
18-
19- visited = [False ]* self .vertex
20- visited [v - 1 ] = True
21- print ('%d visited' % (v ))
22-
23- queue = [v - 1 ]
24- while len (queue ) > 0 :
25- v = queue [0 ]
26- for u in range (self .vertex ):
27- if self .graph [v ][u ] == 1 :
28- if visited [u ]== False :
29- visited [u ] = True
30- queue .append (u )
31- print ('%d visited' % (u + 1 ))
32- queue .pop (0 )
33-
34- g = Graph (10 )
35-
36- g .add_edge (1 ,2 )
37- g .add_edge (1 ,3 )
38- g .add_edge (1 ,4 )
39- g .add_edge (2 ,5 )
40- g .add_edge (3 ,6 )
41- g .add_edge (3 ,7 )
42- g .add_edge (4 ,8 )
43- g .add_edge (5 ,9 )
44- g .add_edge (6 ,10 )
45- g .bfs (1 )
10+ print self .graph
11+
12+ def add_edge (self , i , j ):
13+ self .graph [i ][j ]= 1
14+ self .graph [j ][i ]= 1
15+
16+ def bfs (self ,s ):
17+ queue = [s ]
18+ while len (queue )!= 0 :
19+ x = queue .pop (0 )
20+ print (x )
21+ self .visited [x ]= 1
22+ for i in range (0 ,self .nodes ):
23+ if self .graph [x ][i ]== 1 and self .visited [i ]== 0 :
24+ queue .append (i )
25+ self .visited [i ]= 1
26+
27+ n = int (input ("Enter the number of Nodes : " ))
28+ g = GRAPH (n )
29+ e = int (input ("Enter the no of edges : " ))
30+ print ("Enter the edges (u v)" )
31+ for i in range (0 ,e ):
32+ u ,v = map (int , raw_input ().split ())
33+ g .add_edge (u ,v )
34+ s = int (input ("Enter the source node :" ))
35+ g .bfs (s )
Original file line number Diff line number Diff line change 1- class Graph :
1+ class GRAPH :
2+ """docstring for GRAPH"""
3+ def __init__ (self , nodes ):
4+ self .nodes = nodes
5+ self .graph = [[0 ]* nodes for i in range (nodes )]
6+ self .visited = [0 ]* nodes
27
3- def __init__ (self , vertex ):
4- self .vertex = vertex
5- self .graph = [[0 ] * vertex for i in range (vertex ) ]
6- self .visited = [False ] * vertex
78
8- def add_edge (self , u , v ):
9- self .graph [u - 1 ][v - 1 ] = 1
10- self .graph [v - 1 ][u - 1 ] = 1
119 def show (self ):
10+ print self .graph
1211
13- for i in self .graph :
14- for j in i :
15- print (j , end = ' ' )
16- print (' ' )
12+ def add_edge (self , i , j ):
13+ self .graph [i ][j ]= 1
14+ self .graph [j ][i ]= 1
1715
18-
19- def dfs (self , u ):
20- self .visited [u - 1 ] = True
21- print ('%d visited' % u )
22- for i in range (1 , self .vertex + 1 ):
23- if self .graph [u - 1 ][i - 1 ] == 1 and self .visited [i - 1 ] == False :
16+ def dfs (self ,s ):
17+ self .visited [s ]= 1
18+ print (s )
19+ for i in range (0 ,self .nodes ):
20+ if self .visited [i ]== 0 and self .graph [s ][i ]== 1 :
2421 self .dfs (i )
22+
2523
26-
27- g = Graph (5 )
28- g .add_edge (1 ,4 )
29- g .add_edge (4 ,2 )
30- g .add_edge (4 ,5 )
31- g .add_edge (2 ,5 )
32- g .add_edge (5 ,3 )
33- g .dfs (1 )
24+ n = int (input ("Enter the number of Nodes : " ))
25+ g = GRAPH (n )
26+ e = int (input ("Enter the no of edges : " ))
27+ print ("Enter the edges (u v)" )
28+ for i in range (0 ,e ):
29+ u ,v = map (int , raw_input ().split ())
30+ g .add_edge (u ,v )
31+ s = int (input ("Enter the source node :" ))
32+ g .dfs (s )
You can’t perform that action at this time.
0 commit comments