Skip to content

Commit fcd8815

Browse files
Merge pull request seeditsolution#260 from Naveen963/patch-2
DFS in python
2 parents 1fe6cc1 + 0865efd commit fcd8815

File tree

1 file changed

+89
-0
lines changed

1 file changed

+89
-0
lines changed

DFS

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
# Python program to print DFS traversal for complete graph
2+
3+
from collections import defaultdict
4+
5+
6+
# This class represents a directed graph using adjacency
7+
# list representation
8+
9+
class Graph:
10+
11+
12+
13+
# Constructor
14+
15+
def __init__(self):
16+
17+
18+
19+
# default dictionary to store graph
20+
21+
self.graph = defaultdict(list)
22+
23+
24+
25+
# function to add an edge to graph
26+
27+
def addEdge(self,u,v):
28+
29+
self.graph[u].append(v)
30+
31+
32+
33+
# A function used by DFS
34+
35+
def DFSUtil(self, v, visited):
36+
37+
38+
39+
# Mark the current node as visited and print it
40+
41+
visited[v]= True
42+
43+
print v,
44+
45+
46+
47+
# Recur for all the vertices adjacent to
48+
49+
# this vertex
50+
51+
for i in self.graph[v]:
52+
53+
if visited[i] == False:
54+
55+
self.DFSUtil(i, visited)
56+
57+
58+
59+
60+
61+
# The function to do DFS traversal. It uses
62+
63+
# recursive DFSUtil()
64+
65+
def DFS(self):
66+
67+
V = len(self.graph) #total vertices
68+
69+
70+
71+
# Mark all the vertices as not visited
72+
73+
visited =[False]*(V)
74+
75+
76+
77+
# Call the recursive helper function to print
78+
79+
# DFS traversal starting from all vertices one
80+
81+
# by one
82+
83+
for i in range(V):
84+
85+
if visited[i] == False:
86+
87+
self.DFSUtil(i, visited)
88+
89+

0 commit comments

Comments
 (0)