chore(Python): add breath-first search (#738)

Co-authored-by: Arsenic <54987647+Arsenic-ATG@users.noreply.github.com>
pull/739/merge
Ghada AbdulWahab 2022-04-20 15:37:34 +02:00 committed by GitHub
parent bc0569ad09
commit 76d3bf22aa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 0 deletions

View File

@ -36,6 +36,7 @@
- [Ternary Search](searching/ternary_search.py) - [Ternary Search](searching/ternary_search.py)
- [Interpolation Search](searching/interpolation_search.py) - [Interpolation Search](searching/interpolation_search.py)
- [Uniform Cost Search](searching/uniform_cost_search.py) - [Uniform Cost Search](searching/uniform_cost_search.py)
- [Breath First Search](searching/breadth-first-search.py)
## Sorting ## Sorting
- [Bubble Sort](sorting/bubble_sort.py) - [Bubble Sort](sorting/bubble_sort.py)

View File

@ -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)