4. 什么是图的遍历算法?请举一个具体的例子。python
时间: 2024-02-09 16:09:57 浏览: 208
图的遍历算法是指从图的某一个顶点出发,按照某种规则依次访问所有顶点的过程。常用的图的遍历算法有深度优先搜索(DFS)和广度优先搜索(BFS)。
以深度优先搜索为例,其基本思想是从图的某一个顶点开始出发,沿着一条路径一直走到底,然后回溯到上一个顶点,再选择另一条路径继续走下去,直到遍历完所有的顶点。
下面是Python实现深度优先搜索的代码,以邻接表存储的无向图为例:
```python
def dfs(graph, node, visited):
visited[node] = True
print(node, end=' ')
for neighbor in graph[node]:
if not visited[neighbor]:
dfs(graph, neighbor, visited)
# 无向图的邻接表表示
graph = {0: [1, 2], 1: [0, 2, 3], 2: [0, 1, 4], 3: [1, 4], 4: [2, 3]}
visited = [False] * len(graph)
dfs(graph, 0, visited)
```
该代码中,dfs函数的参数graph是邻接表表示的无向图,node是起始搜索的顶点,visited是标记顶点是否被访问过的数组。在dfs函数中,首先将当前顶点标记为已访问,并输出顶点的值。然后依次访问当前顶点的邻居节点,如果邻居节点没有被访问过,则递归调用dfs函数进行访问。
运行上述代码,输出结果为:0 1 2 4 3,表示从顶点0开始,按照深度优先的顺序遍历了整个图。
阅读全文