chore(Python): add breath-first search (#738)
Co-authored-by: Arsenic <54987647+Arsenic-ATG@users.noreply.github.com>pull/739/merge
parent
bc0569ad09
commit
76d3bf22aa
|
@ -36,6 +36,7 @@
|
|||
- [Ternary Search](searching/ternary_search.py)
|
||||
- [Interpolation Search](searching/interpolation_search.py)
|
||||
- [Uniform Cost Search](searching/uniform_cost_search.py)
|
||||
- [Breath First Search](searching/breadth-first-search.py)
|
||||
|
||||
## Sorting
|
||||
- [Bubble Sort](sorting/bubble_sort.py)
|
||||
|
|
|
@ -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