Guest User

Untitled

a guest
Jul 20th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.86 KB | None | 0 0
  1. visited = []
  2. def BFS(start, target, GRAPH, depth, maxDepth):
  3.   global visited
  4.   #print "\t"*depth,start, "||", GRAPH[start], "||", [BFS(neighbor,target,GRAPH,depth+1,maxDepth) for neighbor in GRAPH[start]]
  5.   if start not in visited:
  6.     visited.append(start)
  7.   else:
  8.     print 'start: ',start,'visited: ', visited
  9.     #you've already visited it, so ignore
  10.     return maxDepth
  11.   if target in GRAPH[start]:
  12.     #you found it
  13.     print 'start: ',start,'visited: ', visited,' and I found it'
  14.     return depth+1
  15.   else:
  16.     if depth == maxDepth:
  17.       print 'start: ',start,'visited: ', visited,' and I reached maxDepth'
  18.       return maxDepth
  19.     else:
  20.       #you haven't found it, so run a BFS on the neighbors
  21.       return min([BFS(neighbor,target,GRAPH,depth+1,maxDepth) for neighbor in GRAPH[start]])
  22.  
  23. print BFS(0,2,{0: [1,3], 1: [2], 2 : [0, 3], 3: [1]},0,3)
Add Comment
Please, Sign In to add comment