python實現廣度優先演算法

2021-09-27 13:26:32 字數 1417 閱讀 4046

參考部落格:

這篇部落格的**都是基於參考部落格裡的題目和**的。

bfs在這個題目中的實現思想:

1.用乙個佇列q儲存待檢查的鄰居們

2.建立乙個空陣列t用於儲存已被檢查過的鄰居們

3.從這個佇列中彈出佇列頭,我們這裡暫時稱為鄰居a,檢查這位鄰居a是否是芒果銷售商,並把a加入到t中

4.如果是,那麼你找到乙個芒果銷售商了

5.如果不是,把a的所有鄰居加入到佇列尾部,然後回到第3步

6.如果隊列為空後你還是沒有找到任何乙個芒果銷售商,那說明你的芒果賣不出去liao

**實現如下:

#參考部落格:

from collections import deque

graph =

graph[

'you']=

['alice'

,'bob'

,'claire'

]graph[

'claire']=

['jonny'

,'thom'

]graph[

'alice']=

['peggy'

]graph[

'bob']=

['anuj'

,'peggy'

]graph[

'anuj']=

graph[

'thom']=

graph[

'jonny']=

graph[

'peggy']=

retailer =

['peggy'

,'bob'

]q = deque(

)q += graph[

'you'

]checked =

flag =

false

#檢查該鄰居是否為芒果銷售商,如果是返回真,如果不是返回假

defcheck_person

(item)

:if item in retailer:

return

true

return

false

while q :

item = q.popleft(

)if item not

in checked :

if check_person(item)

:print

('you find the seller:'

, item)

flag =

true

else

: q += graph[item]

if flag is

nottrue

:print

('oh no,your mango cannot sell out'

)

廣度優先演算法的實現(BFS)

include include using namespace std 定義點的結構體 struct temp struct way 地圖 int a 4 5 定義乙個bool型的陣列判斷是否走過這條路 bool b 4 5 vectorv1 用來存放元素 vectorpath 用來存放路徑 int...

SPFA演算法的廣度優先實現

廣度優先搜尋 queue實現的spfa演算法 include using namespace std define mod 1e9 7 define n 100 define inf 0x3f3f3f3f const double pi atan 1.0 4.0 typedef long long ...

廣度優先bfs的python實現

廣度優先排序 bfs 可以一層一層地將圖向外搜尋,以得到離起點最近的元素,這個 最近 在不同情況可以有不同的意義 將下一層所有元素先儲存在同乙個列表中,當把本層元素的內容執行完後再執行.還是以這張圖為例 當從s開始廣度優先搜尋時 第1層 s 第2層 a,d 第3層 b,c 第4層 t 依次執行這些列...