无向图深度优先遍历
时间: 2024-12-22 19:05:10 浏览: 10
无向图深度优先遍历(Depth-First Search, DFS)是一种用于遍历或搜索树或图的算法。它会尽可能深地搜索图的分支,直到找到目标节点或遍历完所有节点。深度优先遍历可以使用递归或栈来实现。以下是深度优先遍历的基本步骤:
1. **选择起始节点**:从图中的任意一个节点开始。
2. **标记节点为已访问**:将起始节点标记为已访问。
3. **访问相邻节点**:对于当前节点的每一个未访问的相邻节点,递归地进行深度优先遍历。
以下是一个使用递归实现无向图深度优先遍历的示例代码:
```python
def dfs(graph, start, visited=None):
if visited is None:
visited = set()
visited.add(start)
print(start)
for next_node in graph[start]:
if next_node not in visited:
dfs(graph, next_node, visited)
# 示例图
graph = {
'A': ['B', 'C'],
'B': ['A', 'D', 'E'],
'C': ['A', 'F'],
'D': ['B'],
'E': ['B', 'F'],
'F': ['C', 'E']
}
dfs(graph, 'A')
```
在这个示例中,`graph` 是一个字典,表示图的邻接表。`dfs` 函数用于执行深度优先遍历,`visited` 集合用于记录已访问的节点。
阅读全文