python深度优先遍历怎么写
时间: 2023-10-21 09:01:59 浏览: 95
Python实现深度优先搜索文件夹
深度优先遍历(Depth-First Search,DFS)是一种用于遍历或搜索树或图的算法。下面是一个使用Python编写的深度优先遍历的示例:
```
# 定义图的类
class Graph:
def __init__(self, vertices):
self.vertices = vertices
self.adjacency_matrix = [[0] * vertices for _ in range(vertices)]
# 添加边
def add_edge(self, src, dest):
self.adjacency_matrix[src][dest] = 1
self.adjacency_matrix[dest][src] = 1
# 深度优先遍历
def dfs(self, vertex, visited):
# 访问当前节点
visited[vertex] = True
print(vertex, end=" ")
# 递归访问相邻节点
for i in range(self.vertices):
if self.adjacency_matrix[vertex][i] == 1 and not visited[i]:
self.dfs(i, visited)
# 创建一个有向图
g = Graph(5)
g.add_edge(0, 1)
g.add_edge(0, 2)
g.add_edge(1, 3)
g.add_edge(1, 4)
# 初始化访问数组
visited = [False] * g.vertices
# 从节点0开始进行深度优先遍历
print("深度优先遍历结果:")
g.dfs(0, visited)
```
以上代码首先定义了一个图的类,包含了添加边和深度优先遍历的方法。在深度优先遍历的方法中,首先将当前节点标记为已访问,然后递归地访问所有未被访问过的相邻节点。在遍历过程中,使用一个访问数组记录已经访问过的节点,以避免重复访问。最后创建一个有向图的实例,从节点0开始进行深度优先遍历,输出结果为深度优先遍历的顺序。
阅读全文