python實現廣度優先搜尋,查詢芒果經銷商

2021-10-01 05:08:22 字數 1259 閱讀 9487

from collections import deque

graph =

#建立乙個字典,儲存人際關係圖

graph[

"you"]=

["alice"

,"bob"

,'claire'

]graph[

'bob']=

['anuj'

,'peggy'

]graph[

'alice']=

['peggy'

]graph[

'claire']=

['thom'

,'jonny'

]graph[

'anuj']=

graph[

'peggy']=

graph[

'jonny']=

graph[

'thom']=

defsearch

(name)

: search_quene = deque(

)#建立乙個佇列,用於儲存要檢查的人

search_quene += graph[name]

#將name的鄰居加入到這個佇列

searched =

#用來儲存已經檢查過的人

while search_quene:

#如果佇列不為空

person = search_quene.popleft(

)#從佇列中彈出乙個人

if person not

in searched:

#如果這個人沒有被檢查過

if person_is_seller(person)

:#如果這個人是經銷商

print

(person +

" is a mango seller!"

)#大功告成並退出

return

true

else

:#否則

search_quene += graph[person]

#把這個人的鄰居加入到佇列

#把這個人加入到已查詢列表

return

false

#沒有找到任何經銷商

defperson_is_seller

(name)

:return name[-1

]=='m'

search(

"you"

)

廣度優先搜尋(BFS) Python實現

演算法的工作原理 建立乙個佇列,用於儲存要檢查的人 從佇列中彈出乙個人 檢查這個人是否被檢查過 檢查這個人是否為芒果經銷商 是 大功告成 否 將這個人的所有鄰居都加入到佇列中 回到第二步 如果隊列為空,就說明沒有找到芒果經銷商 encoding utf 8 from collections impo...

python深度優先搜尋和廣度優先搜尋

圖的深度優先搜尋 depth first search 和樹的先序遍歷比較類似。它的思想 假設初始狀態是圖中所有頂點均未被訪問,則從某個頂點v出發,首先訪問該頂點,然後依次從它的各個未被訪問的鄰接點出發深度優先搜尋遍歷圖,直至圖中所有和v有路徑相通的頂點都被訪問到。若此時尚有其他頂點未被訪問到,則另...

搜尋 廣度優先搜尋

廣度優先搜尋一層一層地進行遍歷,每層遍歷都是以上一層遍歷的結果作為起點,遍歷乙個距離能訪問到的所有節點。需要注意的是,遍歷過的節點不能再次被遍歷。class solution,int shortestpathbinarymatrix vectorint grid length return 1 cl...