深度优先Python代码
时间: 2024-11-19 21:14:10 浏览: 0
深度优先搜索(Depth-First Search,简称DFS)是一种用于遍历或搜索树或图的算法。在Python中,我们可以使用递归的方式来实现深度优先搜索。以下是一个简单的例子,假设我们有一个无向图的邻接列表表示:
```python
# 定义节点类
class Node:
def __init__(self, value):
self.value = value
self.neighbors = []
# 创建节点并添加边
graph = {
'A': [Node('B'), Node('D')],
'B': [Node('C'), Node('E')],
'C': [Node('F')],
'D': [],
'E': [Node('F')],
'F': []
}
# 深度优先搜索函数
def dfs(node, visited=None):
if visited is None:
visited = set()
# 将当前节点标记为已访问
visited.add(node)
print(f"Visiting {node.value}")
# 遍历当前节点的所有邻居
for neighbor in node.neighbors:
if neighbor not in visited:
dfs(neighbor, visited)
# 从节点'A'开始搜索
dfs(Node('A'))
```
这个代码首先定义了一个`Node`类,然后创建了一个示例图。`dfs`函数接受一个节点作为输入,并通过检查是否已经访问过该节点来防止无限循环。它会打印出访问过的每个节点,并继续对未访问过的邻居递归调用自身。
阅读全文