I am using python 3 to implement dfs in visual studio code . i am using to bash(git) terminal to run python code.
class Graph:
def __init__(self):
self.graph ={}
def insert_directed(self,key,val):
self.graph[key] = self.graph.get(key,[])+[val]
def insert_undirected(self,key,val):
self.graph[key] = self.graph.get(key,[])+[val]
self.graph[val] = self.graph.get(val,[])+[key]
def show(self):
for key,val in self.graph.items():
print(key,val)
def dfs(self,root,visited = []):
if root not in visited:
print(root)
visited.append(root)
for i in self.graph.get(root,[]):
self.dfs(i,visited)
if __name__ == '__main__':
gr = Graph()
gr2 = Graph()
gr.insert_directed("A","C")
gr.insert_directed("C","B")
gr.insert_directed("A","D")
gr.insert_directed("D","H")
gr.insert_directed("C","F")
gr.insert_directed("F","G")
gr.insert_directed("D","H")
gr2.insert_undirected("A","C")
gr2.insert_undirected("B","C")
gr2.insert_undirected("D","A")
gr2.insert_undirected("D","H")
gr2.insert_undirected("C","F")
gr2.insert_undirected("F","G")
gr2.insert_undirected("D","H")
gr.show()
gr.dfs("A")
gr2.show()
gr2.dfs("A")
the code is working fine for first object of Graph class . But if I don't pass default argument for second object , it is not working . Ii is working fine if i pass default argument for 2nd object.