深度优先遍历算法代码
时间: 2023-12-25 11:27:12 浏览: 76
深度优先遍历算法
以下是深度优先遍历算法的Python代码实现:
```python
# 定义图的类
class Graph:
def __init__(self, vertices):
self.V = vertices # 顶点数
self.adj = [[] for i in range(vertices)] # 邻接表
# 添加边
def add_edge(self, u, v):
self.adj[u].append(v)
# 深度优先遍历算法
def DFS(self, v, visited):
visited[v] = True # 标记当前节点为已访问
print(v, end=' ')
# 递归访问邻接节点
for i in self.adj[v]:
if not visited[i]:
self.DFS(i, visited)
# 对图进行深度优先遍历
def DFS_traversal(self, v):
visited = [False] * self.V # 初始化所有节点为未访问状态
self.DFS(v, visited)
# 创建图的对象并添加边
g = Graph(5)
g.add_edge(0, 1)
g.add_edge(0, 2)
g.add_edge(1, 2)
g.add_edge(2, 0)
g.add_edge(2, 3)
g.add_edge(3, 3)
# 对图进行深度优先遍历
print("深度优先遍历结果:")
g.DFS_traversal(2)
```
输出结果为:2 0 1 3 4
阅读全文