在Python中實現廣度優先算法可以通過使用隊列來實現。以下是一個示例代碼,實現了一個簡單的廣度優先搜索算法:
from collections import deque
def bfs(graph, start):
visited = set()
queue = deque([start])
while queue:
node = queue.popleft()
if node not in visited:
print(node)
visited.add(node)
queue.extend(graph[node] - visited)
# 定義一個簡單的圖
graph = {
'A': {'B', 'C'},
'B': {'A', 'D', 'E'},
'C': {'A', 'F'},
'D': {'B'},
'E': {'B', 'F'},
'F': {'C', 'E'}
}
# 調用廣度優先算法
bfs(graph, 'A')
在這個示例中,我們定義了一個簡單的圖,然后調用 bfs()
函數來進行廣度優先搜索。函數會從指定的起始節點開始,逐層遍歷圖中的節點,并輸出節點值。
你可以根據實際情況自定義圖的結構和起始節點,然后調用 bfs()
函數來執行廣度優先搜索。