邻接表深度优先遍历图
时间: 2023-12-18 14:29:53 浏览: 112
邻接表是一种常用的图的表示方法,它使用链表来表示图中每个顶点的邻接点。深度优先遍历是一种图的遍历算法,它从图的某个顶点开始,沿着一条路径访问图中的顶点,直到不能继续访问为止,然后回溯到前一个顶点,继续访问其他未访问的顶点,直到所有顶点都被访问完为止。
下面是使用邻接表表示图,并进行深度优先遍历的示例代码:
```python
class Graph:
def __init__(self, vertices):
self.V = vertices
self.adj = [[] for _ in range(vertices)]
def addEdge(self, u, v):
self.adj[u].append(v)
def DFSUtil(self, v, visited):
visited[v] = True
print(v, end=" ")
for i in self.adj[v]:
if not visited[i]:
self.DFSUtil(i, visited)
def DFS(self, v):
visited = [False] * self.V
self.DFSUtil(v, visited)
# 创建一个图对象
g = Graph(5)
# 添加边
g.addEdge(0, 1)
g.addEdge(0, 2)
g.addEdge(1, 3)
g.addEdge(2, 3)
g.addEdge(3, 4)
print("深度优先遍历结果:")
g.DFS(0)
```
输出结果为:0 1 3 2 4,表示从顶点0开始进行深度优先遍历时,访问的顶点的顺序。
阅读全文