>>算法导论P325
def bfs_graph(graph,s):
queue=[]
queue.append(s)
while queue:
u=queue.pop(0)
print(u,end=' ')#访问顶点u
is_visited[u]=True
for each in graph[u]:
if is_visited[each] is False and each not in queue:#没有被访问且不重复入队
queue.append(each)
return 0
#test
graph={'A':['B','C'],
'B':['A','C','D'],
'C':['A','B','D','F'],
'D':['B','C'],
'E':['F'],
'F':['C','E']}
is_visited={'A':False,'B':False,'C':False,'D':False,'E':False,'F':False}
bfs_graph(graph,'A')
测试用图: