File tree 2 files changed +57
-68
lines changed
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
2
7
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
10
8
11
9
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
2
7
3
- def __init__ (self , vertex ):
4
- self .vertex = vertex
5
- self .graph = [[0 ] * vertex for i in range (vertex ) ]
6
- self .visited = [False ] * vertex
7
8
8
- def add_edge (self , u , v ):
9
- self .graph [u - 1 ][v - 1 ] = 1
10
- self .graph [v - 1 ][u - 1 ] = 1
11
9
def show (self ):
10
+ print self .graph
12
11
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
17
15
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 :
24
21
self .dfs (i )
22
+
25
23
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