Trying To Find All The Path In A Graph Using Dfs Recursive In Python
I have found a solution that was posted some times ago and I have tried to apply it to my exercise but it doesn't work. I have a class graph that has nodes and edges and a method c
Solution 1:
Since you only want to get all paths from start to end, the path is appended to your total path list when it reaches the end. The total list of paths is not returned but rather populated:
paths = []
def myDFS(graph,start,end,path=[]):
path=path+[start]
if start==end:
paths.append(path)
for node in graph.childrenOf(start):
if node notinpath:
myDFS(graph,node,end,path)
Solution 2:
i've flattened JSON of nested dicts (depth was four)
{'output':
'lev1_key1': 'v11',
'lev1_key2': {
{'lev2_key1': 'v21',
'lev2_key2': 'v22',
}
}
with recursive call of
paths = []
_PATH_SEPARATOR = '/'defflatten(treeroot, path=''):
path=path
ifisinstance(treeroot, dict):
for k in treeroot.keys():
s_path = path + _PATH_SEPARATOR + str(k)
flatten(treeroot[k], path=s_path)
elifisinstance(treeroot, str):
path = path + _PATH_SEPARATOR + treeroot
paths.append(path)
elifisinstance(treeroot, list):
# if node has more than one child for k in treeroot.keys():
s_path = path + _PATH_SEPARATOR + str(k)
flatten(k, path=s_path)
result is
{
'output/lev1_key1': 'v11',
'output/lev1_key2/lev2_key1': 'v21',
'output/lev1_key2/lev2_key2': 'v22',
}
Post a Comment for "Trying To Find All The Path In A Graph Using Dfs Recursive In Python"