用深度优先遍历算法写已知图
时间: 2024-12-17 20:20:45 浏览: 3
深度优先遍历(Depth-First Search,DFS)是一种用于搜索或遍历树形结构或图的算法,其基本思想是从根节点开始,尽可能深地探索分支,直到到达叶子节点,然后回溯到上一个未访问过的节点。以下是使用深度优先遍历算法遍历已知图的伪代码:
```python
# 定义图的表示(例如邻接列表)
graph = {
'A': ['B', 'C'],
'B': ['D', 'E'],
'C': ['F'],
'D': [],
'E': ['F'],
'F': []
}
def dfs(graph, start):
visited = [] # 记录已访问节点
stack = [start] # 使用栈保存待访问节点
while stack:
node = stack.pop() # 弹出栈顶节点
if node not in visited:
visited.append(node) # 标记为已访问
print(node, end=" ") # 输出当前节点
for neighbor in graph[node]: # 检查相邻节点
stack.append(neighbor) # 将未访问的邻居压入栈
# 调用函数,从节点'A'开始遍历
dfs(graph, 'A')
```
在这个例子中,我们首先初始化一个栈并将起始节点添加进去。然后进入一个循环,只要栈不为空,就取出栈顶节点并检查是否已经访问过。如果没访问过,就将它标记为已访问,输出节点,并将其所有未访问的相邻节点压入栈。当所有路径都走完后,返回到上一级。
阅读全文