graph={
"A":["B","D","E"],
"B":["A","C"],
"C":["B","E"],
"D":["A","E"],
"E":["A","D","F","C"],
"F":["E"]
}
def bfs(graph,start):
queue=[]
queue.append(start)
result=[]
visited=set()
visited.add(start)
while(len(queue)>0):
currentVertex=queue.pop(0)
result.append(currentVertex)
for neighbor in graph[currentVertex]:
if neighbor not in visited:
queue.append(neighbor)
visited.add(neighbor) #這個節點鄰居如果沒有被訪問過,加到visited內
return result
print(bfs(graph,"A"))
Z3JhcGg9ewoJIkEiOlsiQiIsIkQiLCJFIl0sCgkiQiI6WyJBIiwiQyJdLAoJIkMiOlsiQiIsIkUiXSwKCSJEIjpbIkEiLCJFIl0sCgkiRSI6WyJBIiwiRCIsIkYiLCJDIl0sCgkiRiI6WyJFIl0KfQoKZGVmIGJmcyhncmFwaCxzdGFydCk6CglxdWV1ZT1bXQoJcXVldWUuYXBwZW5kKHN0YXJ0KQoJcmVzdWx0PVtdCgl2aXNpdGVkPXNldCgpCgl2aXNpdGVkLmFkZChzdGFydCkKCXdoaWxlKGxlbihxdWV1ZSk+MCk6CgkJY3VycmVudFZlcnRleD1xdWV1ZS5wb3AoMCkKCQlyZXN1bHQuYXBwZW5kKGN1cnJlbnRWZXJ0ZXgpCgkJZm9yIG5laWdoYm9yIGluIGdyYXBoW2N1cnJlbnRWZXJ0ZXhdOgoJCQlpZiBuZWlnaGJvciBub3QgaW4gdmlzaXRlZDoKCQkJCXF1ZXVlLmFwcGVuZChuZWlnaGJvcikKCQkJCXZpc2l0ZWQuYWRkKG5laWdoYm9yKSAj6YCZ5YCL56+A6bue6YSw5bGF5aaC5p6c5rKS5pyJ6KKr6Kiq5ZWP6YGO77yM5Yqg5YiwdmlzaXRlZOWFpwoJcmV0dXJuIHJlc3VsdAoKcHJpbnQoYmZzKGdyYXBoLCJBIikp