def bfs(graph, start):
visited = set()
queue = deque([start])
while queue:
node = queue.popleft()
if node not in visited:
visited.add(node)
处理节点
for neighbor in graph[node]:
if neighbor not in visited:
queue.append(neighbor)
深度优先搜索(DFS)
python
def dfs(graph, start):
visited = set()
stack = [start]
while stack:
node = stack.pop()
if node not in visited:
visited.add(node)
处理节点
for neighbor in graph[node]:
if neighbor not in visited:
stack.append(neighbor)