Merge pull request #1 from GAbdulWahab/ghada-1
added Breadth-first search in python #734pull/739/head
commit
0f3092659d
|
@ -0,0 +1,32 @@
|
||||||
|
# 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)
|
Loading…
Reference in New Issue