bfs无向图python实现
时间: 2024-10-14 22:04:55 浏览: 43
BFS (广度优先搜索) 是一种用于遍历或查找无向图的算法。在Python中,你可以使用队列数据结构来实现BFS。以下是一个基本的无向图BFS遍历的步骤:
```python
from collections import deque
# 定义节点类,包含邻接列表
class Graph:
def __init__(self):
self.graph = defaultdict(list)
# 添加边的方法
def add_edge(self, u, v):
self.graph[u].append(v)
self.graph[v].append(u) # 因为无向图,所以边是双向的
# BFS遍历函数
def bfs(graph, start_node):
visited = set() # 记录已访问的节点
queue = deque([start_node]) # 队列存放待访问节点
while queue:
node = queue.popleft() # 取出队首节点
if node not in visited:
print(node, end=" ") # 输出节点
visited.add(node) # 标记为已访问
for neighbor in graph[node]: # 将邻居加入队列
queue.append(neighbor)
# 使用示例
graph = Graph()
# ... 先添加节点和边
bfs(graph, 'A') # 从'A'开始做BFS
```
阅读全文