Advertisement
Guest User

Untitled

a guest
Dec 16th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.87 KB | None | 0 0
  1. graph = {'0':set(['1','2']),
  2.          '1':set(['3','4']),
  3.          '2':set(['5','6']),
  4.          '3':set(['6']),
  5.          '4':set(['7'])}
  6.    
  7. def dfs(graf, start, target):
  8.     stack = [[start]]
  9.     visited = set()
  10.     i = 0
  11.     while stack:
  12.         stack_lenght = len(stack)-1
  13.         path = stack.pop(stack_lenght)
  14.         state = path[-1]
  15.         i = i + 1
  16.         if state == target:
  17.             print("Number of steps: ", i)
  18.             return path
  19.         elif state not in visited:
  20.             for vertex in graf.get(state, []):
  21.                 if vertex not in visited:
  22.                     path_new = list(path)  
  23.                     path_new.append(vertex)
  24.                     stack.append(path_new)
  25.             visited.add(state)
  26.         lenght = len(stack)
  27.         if lenght == 0:
  28.             print("Not founded")
  29. print("Results: ",dfs(graph,'0','5'))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement