DSA/algorithms/Python/searching/breadth-first-search.py

33 lines
729 B
Python
Raw Normal View History

# this graph to check the algorithm
graph={
'S':['B','D','A'],
'A':['C'],
'B':['D'],
'C':['G','D'],
'S':['G'],
}
#function of BFS
def BFS(graph,start,goal):
Visited=[]
queue=[[start]]
while queue:
path=queue.pop(0)
node=path[-1]
if node in Visited:
continue
Visited.append(node)
if node==goal:
return path
else:
adjecent_nodes=graph.get(node,[])
for node2 in adjecent_nodes:
new_path=path.copy()
new_path.append(node2)
queue.append(new_path)
Solution=BFS(graph,'S','G')
print('Solution is ',Solution)