《算法图解》第6章相关内容
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'] = []
def search(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] #把这个人的邻居加入到队列
searched.append(person) #把这个人加入到已查找列表
return False #没有找到任何经销商
def person_is_seller(name):
return name[-1] == 'm'
search("you")