#定义一个图的结构
graph={
'A':['B','C'],
'B':['A','C','D'],
'C':['A','B','D','E'],
'D':['B','C','E','F'],
'E':['C','D'],
'F':['D']
}
from collections import deque
def BFS(graph, s): # graph是图,s代表开始结点
search_queue = deque() # 双端队列
search_queue.append(s) # 初始结点入队
v = set() # 标记数组已被访问 集合的非重复性
v.add(s) # 标记初始结点
while len(search_queue) > 0 : # 队列非空
vertex = search_queue.popleft() # 队首元素出队
nodes = graph[vertex] # 队首元素连接的结点列表
for w in nodes:
if w not in v:
search_queue.append(w) # 未被访问的结点入队
v.add(w) # 标记已访问
print(vertex, end=' ') # 输出访问结点,即访问结点序列