有向
图的
深度优先遍历(Depth First Search, DFS)是一种用于遍历
图的
算法。它从
图中的一个顶点开始,沿着一条路径尽可能深地访问
图中的顶点,直到无法继续前进为止,然后回溯到前一个顶点,继续探索其他路径。以下是一个用Python实现有向
图 深度优先遍历的示例代码:
# 定义有向图类class DirectedGraph:def __init__(self):self.graph = {}# 添加边def add_edge(self, start, end):if start in self.graph:self.graph[start].append(end)else:self.graph[start] = [end]#深度优先遍历def dfs(self, start):visited = set() # 记录已访问的节点def dfs_helper(node):visited.add(node)print(node, end=" ") # 输出节点值if node in self.graph:for neighbor in self.graph[node]:if neighbor not in visited:dfs_helper(neighbor)dfs_helper(start)# 创建有向图对象graph = DirectedGraph()# 添加边graph.add_edge('A', 'B')graph.add_edge('A', 'C')graph.add_edge('B', 'D')graph.add_edge('B', 'E')graph.add_edge('C', 'F')#深度优先遍历print("深度优先遍历结果:")graph.dfs('A')
运行以上代码,输出结果为:A B D E C F
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/10131.html