请用深度优先算法写一个函数
时间: 2024-02-05 16:12:38 浏览: 57
一个小算法,深度优先
好的,以下是一个使用深度优先算法进行遍历的函数:
```python
def dfs(graph, start):
visited = set() # 用集合记录已访问的节点
stack = [start] # 初始节点入栈
while stack:
node = stack.pop() # 取出栈顶节点
if node not in visited:
visited.add(node) # 标记为已访问
for neighbor in graph[node]:
stack.append(neighbor) # 将邻居节点入栈
return visited
```
其中 `graph` 是一个字典,表示图的邻接表;`start` 是起始节点。函数从起始节点开始,使用栈来维护遍历顺序,遍历过程中用集合 `visited` 记录已经访问过的节点,遍历结束后返回所有访问过的节点的集合。
阅读全文