广度优先搜索算法
graph = {
"A": ["B", "C"],
"B": ["A", "C", "D"],
"C": ["A", "B", "D", "E"],
"D": ["B", "C", "E", "F"],
"E": ["C", "D"],
"F": ["D"],
"G": None,
}
visited = dict.fromkeys(graph.keys(), False)
def BFSTraverse(graph):
for key, value in visited.items():
if not value:
BFS(graph, key)
def BFS(graph, start):
queue = [start]
print(start, end=" ")
visited[start] = True
while queue:
vertex = queue.pop(0)
if (nodes := graph[vertex]) != None:
for node in nodes:
if not visited[node]:
visited[node] = True
queue.append(node)
print(node, end=" ")
print()
if __name__ == "__main__":
BFSTraverse(graph)
parent = BFS1(graph, "E")
print(parent)